题目描述
时间限制:1秒
空间限制:32768K
将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”
所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符
接口说明
/**
* 反转句子
*
* @param sentence 原句子
* @return 反转后的句子
*/
public String reverse(String sentence);
输入描述:
将一个英文语句以单词为单位逆序排放。
输出描述:
得到逆序的句子
示例1
输入
I am a boy
输出
boy a am I
思路: 既然是逆序输出,我的想法就是找一个大的输出将输入的字符串都存起来,然后逆序输出。在实现的过程中遇到了一些小问题,经过杜学长和我的搜索引擎最终还是AC了。期间遇到的问题就是:
- 在vs和vc6.0中没有将string类型包含在string.h的头文件中而是包含在string头文件中
while循环中判断条件不管是否成立都会去执行一遍,因此在执行完输入操作之后,字符串数组的长度值应该是i-1,之后改进的代码页放在了后面
代码如下:
#include<iostream>
using namespace std;
string str[1000000];
int main(){
int i=0;
while(cin>>str[i++]);
/*
此段代码一开始不知道为啥第一次是str[i-2],之后发现了上述提到的第二点,改进代码如下
while(cin>>str[i]){
i++;
}
cout<<str[i-1];
for(int j=i-2;j>=0;j--){
cout<<" "<<str[j];
}
*/
cout<<str[i-2];
for(int j=i-3;j>=0;j--){
cout<<" "<<str[j];
}
return 0;
}