标签:des style blog io color ar os java sp
Text Reverse |
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) |
Total Submission(s): 6265 Accepted Submission(s): 1713 |
Problem Description
Ignatius likes to write words in reverse way. Given a single line of text which is written by Ignatius, you should reverse all the words and then output them.
|
Input
The input contains several test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow.
Each test case contains a single line with several words. There will be at most 1000 characters in a line. |
Output
For each test case, you should output the text which is processed.
|
Sample Input
3 olleh !dlrow m‘I morf .udh I ekil .mca |
Sample Output
hello world! I‘m from hdu. I like acm. Hint
Remember to use getchar() to read ‘\n‘ after the interger T, then you may use gets() to read a line and process it. |
水题,注意细节。
PE三次的代码:
1 #include<cstdio> 2 #include<cstring> 3 #include<stack> 4 using namespace std; 5 const int maxn=1000+10; 6 char str[maxn]; 7 int main() 8 { 9 stack<char>s; 10 int T; 11 char ch; 12 scanf("%d",&T); 13 getchar(); 14 while(T--) 15 { 16 //s.clear; 17 gets(str); 18 //getchar(); 19 for(int i=0;i<strlen(str);i++) 20 { 21 if(str[i]!=‘ ‘) 22 { 23 s.push(str[i]); 24 } 25 if(str[i]==‘ ‘||i==(strlen(str)-1)) 26 { 27 while(!s.empty()) 28 { 29 ch=s.top(); 30 printf("%c",ch); 31 s.pop(); 32 } 33 if(i!=(strlen(str)-1)) 34 printf(" "); 35 } 36 } 37 printf("\n"); 38 } 39 }
AC的代码:
#include<stdio.h> #include<stack> using namespace std; int main() { int n; char ch; scanf("%d",&n); getchar(); /*吸收回车符*/ while(n--) { stack<char> s; /*定义栈*/ while(true) { ch=getchar(); /*压栈时,一次压入一个字符*/ if(ch==‘ ‘||ch==‘\n‘||ch==EOF) { while(!s.empty()) { printf("%c",s.top()); s.pop(); /*清除栈顶元素*/ } if(ch==‘\n‘||ch==EOF) break; /*绝对不能少,控制输出结束*/ printf(" "); } else s.push(ch); } printf("\n"); } return 0; }
标签:des style blog io color ar os java sp
原文地址:http://www.cnblogs.com/wpnan/p/4089661.html