题目描述
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
题目分析
这是一个很典型的字符串反转问题,以空格作为分割依据,每个子字符串内的字符顺序不变,而且有可能会碰到全是空格的字符串,这时需要做一个判断。详细实现请见源代码
源代码
class Solution {
public:
string ReverseSentence(string str)
{
vector<string> vec;
string s;
string result;
for(int i=0;i<str.size();i++)
{
if(str[i]!=' ')
{
s.push_back(str[i]);
if(i==str.size()-1)
{
vec.push_back(s);
}
}
else
{
vec.push_back(s);
s.clear();
}
}
for(int j=vec.size()-1;j>=0;j--)
{
if(result.size()==0)
{
if(vec[j].size()==0)//判断每个子字符串是否为" "
{
result=" ";
}
else
{
result=vec[j];
}
}
else
{
if(vec[j].size()==0)//判断每个子字符串是否为" "
{
result=result+" ";
}
else
{
result=result+' '+vec[j];
}
}
}
return result;
}
};