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; } };