代码随想录算法训练营第九天|151.翻转字符串里的单词,卡码网:55.右旋转字符串,28. 实现 strStr(),459.重复的子字符串

151.翻转字符串里的单词

代码随想录算法训练营第九天|151.翻转字符串里的单词,卡码网:55.右旋转字符串,28. 实现 strStr(),459.重复的子字符串_第1张图片
单词的顺序颠倒而不是单词的内部字符颠倒。所以我的思路是双指针思想,这一次快慢指针指向字符串的末尾,向前移直到快指针读到空格,再回头读到慢指针。写入的指针指向新数组开头,快指针顺序读取单词字母时,写入指针以此写入.
……………………
想和写果然是两码事,我的循环嵌套怎么还要嵌套才能实现。QAQ
卡哥的思路
移除多余空格
将整个字符串反转
将每个单词反转
举个例子
源字符串为:"the sky is blue "
移除多余空格 : “the sky is blue”
字符串反转:“eulb si yks eht”
单词反转:“blue is sky the”
妙哉

class Solution {
   
public:
    // 版本一
    void reverse(string& s, int start, int end) {
    // 翻转,区间写法:左闭右闭 []
        for (int i = start, j = end; i < j; i++, j--) {
   
            swap(s[i], s[j]);
        }
    }
    void removeExtraSpaces(
        string& s) 

你可能感兴趣的:(代码随想录,算法,c++)