没有输出的输入是不完整的

0%

剑指offer-反转单词序列

本文为剑指 offer 系列第四十三篇。
主要知识点依旧是字符串,注意观察题目规律,细心一点就行,也比较简单。

题目描述

牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么

解题思路

观察题目我们就可以发现,其实每个单词内部的字母都是正序的,然后每个单词都是用空格隔开的,然后单词的顺序是逆序的,所以我们很自然的就可以想到每次按照顺序读取一个单词,然后单词之间按照逆序进行拼接即可。

解题代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public:
string ReverseSentence(string str) {
string res = "";
string temp = "";
for(char a:str){
if(a != ' '){
temp.push_back(a);
}else{
res = temp+" "+res;
temp = "";
}
}
res = temp+" "+res;
return res.substr(0,res.size()-1);
}
};

时间复杂度为O(n),空间复杂度为O(n)

以上,本题结束!