给定一个字符串 s
,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
1 <= s.length <= 5 * 104
s 包含可打印的 ASCII 字符。
s 不包含任何开头或结尾空格。
s 里 至少 有一个词。
s 中的所有单词都用一个空格隔开。
class Solution {
public:
string reverseWords(string s) {
string res,temp;
for( int i = 0 ; i < s.size();i++)
{
if(s[i]==' ')
{
res = res+' '+reverse(temp);
temp="";
}
else if(i==s.size()-1)
{
temp+=s[i];
res = res + ' '+reverse(temp);
}
else
{
temp+=s[i];
}
}
res.erase(0,1);
return res;
}
string reverse(string s)
{
string res=s;
for( int i = 0 ; i < res.size();i++)
{
res[i] = s[res.size()-1-i];
}
return res;
}
};
思路:
空格切分,每个单词单独反转,去掉开头的空格。
笨死了笨死了,状态不好,感觉是写的最烂的一道题。