题目描述:牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“nowcoder. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a nowcoder.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
1. 分析
思路:挨个读取字符串的每个字符,若不是空格,就将该字符保存到一个临时字符串中;若读到了空格,则将临时字符串保存到结果字符串中,同时临时字符串置空。
2. 用C++写出逻辑:
string ReverseSentence(string str) {
int len = str.size();
if(len == 0) return "";
string res = ""; string tmp = "";
for(int i = 0; i < len; ++i){
if(str[i] == ' '){
res = " " + tmp + res;
tmp = "";
}else
tmp += str[i];
}
if(tmp.size())
res = tmp + res;
return res;
}