给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例 1:
输入: "Let's take LeetCode contest"
输出: "s'teL ekat edoCteeL tsetnoc"
class Solution {
public:
string reverseWords(string s) {
int i=0,j=0,next_start;
char temp;//交换字母的临时变量
while(j<s1)
{
while(s[j]!=' '&&j<s.size())
j++;
next_start=j+1;//下一个单词开始的地方
j--;//空格前一个字符
while(i<j)
{
temp=s[i];
s[i]=s[j];
s[j]=temp;
i++;
j--;
}
i=next_start;//更新i到下一个单词的首字母位置
j=next_start;
}
return s;
}
};
class Solution {
public:
string reverseWords(string s) {
int i=0,j=0;
while(j<s.size())
{
while(s[j]!=' '&&j<s.size())
j++;
reverse(&s[i], &s[j]);
i=j+1;//i更新到下一个单词的首位
j=i;
}
return s;
}
};
直接调用reserve快一些