您的位置:首页 > 其它

杭电1062 之 Text Reverse

2017-05-02 15:33 330 查看
[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.

题意:交换单词位置,每个单词之间有若干个空格隔开例如:“ asdas ghty,. yui ” 的对应输出为“ sadsa .,ythg iuy ”

AC代码如下:
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;

const int maxn=1000+10;
char a[maxn];

void fun(int row,int col)
{
for(int i=row;i<=(row+col)/2;i++)
{
char temp=a[i];
a[i]=a[row+col-i];
a[row+col-i]=temp;
}
}

int main()
{
int t;
cin>>t;
getchar();
while(t--)
{
gets(a);
int row=0,col=0;
int len=strlen(a);
for(int i=0;i<len;i++)
{
if(a[i]==' ')
{
cout<<" ";
continue;
}
if(a[i]!=' ')
{
row=i;
while(i<len && a[i]!=' ')
{
i++;
}
i--;
col=i;
fun(row,col);
for(int j=row;j<=col;j++) cout<<a[j];
}
}
cout<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: