给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例 1:
输入: "Let's take LeetCode contest" 输出: "s'teL ekat edoCteeL tsetnoc"
注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。
C++
class Solution {
public:
string reverseWords(string s)
{
int n=s.length();
vector<int> temp;
for(int i=0;i<n;i++)
{
if(s[i]==' ')
{
temp.push_back(i);
}
}
int m=temp.size();
if(m==0)
{
reverse(s.begin(),s.end());
return s;
}
reverse(s.begin(),s.begin()+temp[0]);
for(int i=0;i<m-1;i++)
{
reverse(s.begin()+temp[i]+1,s.begin()+temp[i+1]);
}
reverse(s.begin()+temp[m-1]+1,s.end());
return s;
}
};