您的位置:首页 > 其它

HDU 1062 Text Reverse

2016-04-09 19:23 288 查看

Text Reverse

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 25464    Accepted Submission(s): 9870


[align=left]Problem Description[/align]
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.

 

[align=left]Input[/align]
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.

 

[align=left]Output[/align]
For each test case, you should output the text which is processed.

 

[align=left]Sample Input[/align]

3
olleh !dlrow
m'I morf .udh
I ekil .mca

 

[align=left]Sample Output[/align]

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.

 

[align=left]Author[/align]
Ignatius.L
 

[align=left]Recommend[/align]
We have carefully selected several similar problems for you:  1020 1073 1039 1040 1088 
 
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
char s1[1100];
char s2[1100];
int T,len,i,t,j,k;
scanf("%d",&T);
getchar();
while(T--)
{

gets(s1);
len=strlen(s1);
for(i=0,j=0,t=0;i<len;i++)
{
if(s1[i]!=' ')
{
s2[j++]=s1[i];
}
else
{
if(t>0)
printf(" ");
for(k=j-1;k>=0;k--)
printf("%c",s2[k]);
j=0;
t++;
}
if(i==len-1)//输出最后一个单词
{
printf(" ");
for(k=j-1;k>=0;k--)
printf("%c",s2[k]);
}
}
printf("\n");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: