HDU 1062 Text Reverse

题意 : 给出你一个句子,让你把句子中每个单词的字母顺序颠倒一下输出。

思路 : 用栈即可,就是注意原来在哪儿有空格就要输出空格。

//hdu1062

#include <iostream>

#include <stdio.h>

#include <string.h>

#include <stack>

using namespace std ;

int main()

{

    int n ;

    scanf("%d",&n) ;

    getchar() ;

    char ch[1100] ;

    for(int i = 0 ; i < n ; i++)

    {

        stack<char>stk ;

        gets(ch) ;

        int len = strlen(ch) ;

        ch[len] = ' ' ;//最后一个单词输出时的空格

        ch[len+1] = '\0' ;

        int len1 = strlen(ch) ;

        for(int j = 0; j < len1 ; j++)

        {

            if(ch[j] != ' ')

                stk.push(ch[j]) ;

            else

            {

                while(!stk.empty())

                {

                    char sh = stk.top() ;

                    printf("%c",sh) ;

                    stk.pop() ;

                }

                if(j != len1-1)

                    printf("%c",ch[j]) ;//除了最后一个单词后边没有空格之外,其余都有

            }



        }printf("\n") ;

    }

    return 0 ;

}
View Code

 

你可能感兴趣的:(text)