1.反转字符串中的单词
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例:
输入:"Let's take LeetCode contest"
输出:"s'teL ekat edoCteeL tsetnoc"
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路:原地算法
class Solution {
public:
string reverseWords(string s) {
//原地交换,注意边界条件写好
int len=s.length();
int i=0;
int start,left,right;
while(i<len)
{
start=i;//题目里第一个字符肯定不是空格
while(s[i]!=' '&&i<len)
{
i++;
}//找到第一个单词
left=start;right=i-1;
while(left<right)
{
swap(s[left],s[right]);
left++;
right--;
}//交换
while(s[i]==' '&&i<len)
{
i++;
}//走到下一个单词头
}
return s;
}
};
京公网安备 11010502036488号