B1009说反话

Posted pennyxia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了B1009说反话相关的知识,希望对你有一定的参考价值。

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

输入格式:

测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。

输出格式:

每个测试用例的输出占一行,输出倒序后的句子。

输入样例:

Hello World Here I Come
 

输出样例:

Come I Here World Hello

思路:

利用reverse()进行反转,然后遍历字符串str,遇到空格之后再次进行反转,使用pos记录开始的位置;最后一个单词由于没有空格所以单独处理。

 问题:

输入字符串不完整

解决:

cin>>str; 改为 getline(cin,str);前者遇到空格结束输入,后者遇到回车结输入。

 

 1 #include <iostream>
 2 #include <string>
 3 #include <algorithm>
 4 using namespace std;
 5 int main() {
 6     string str;
 7     getline(cin, str);//在输入回车时结束
 8     reverse(str.begin(),str.end());//对容器或者string类型进行反转
 9     int pos = 0;
10     for (int i = 0; i < str.length(); i++) {
11         if (str[i] ==  ) {
12             reverse(str.begin() + pos, str.begin() + i);
13             pos = i + 1;
14         }    
15     }
16     //对最后一个单词单独处理
17     reverse(str.begin() + pos, str.end());
18     cout << str;
19 }

 

 

 

以上是关于B1009说反话的主要内容,如果未能解决你的问题,请参考以下文章

B1009 说反话

B1009说反话

1009. 说反话

P 1008 说反话

1009. 说反话 (20)

PTA-说反话(加强版)-C语言