如何做网页制作,搜索引擎优化排名seo,有什么网站可以免费做图,百度seo排名优化助手双指针
常规思路#xff1a; 按照空格split 字符串#xff0c;得到字符串单词数组#xff1b;然后每个单词进行反转#xff08;reverse#xff09;#xff1b;然后使用空格将反转后的单词拼接#xff08;join#xff09;起来#xff1b;C 可以在字符串上直接操作 按照空格split 字符串得到字符串单词数组然后每个单词进行反转reverse然后使用空格将反转后的单词拼接join起来C 可以在字符串上直接操作 先反转字符串然后遍历字符串对字符进行操作 找到单词非空字符作为起始 start 指针找到单词结尾 end 指针start 到 end 即为单词的区间对其进行反转操作还原单词加上空格字符连接最后去除字符串尾部多余的字符最开始使用 index 指针标记有效字符的位置
class Solution {
public:string reverseWords(string s) {std::reverse(s.begin(), s.end());int size s.size();int idx 0;for (int start 0; start size; start) {if (s[start] ! ) {if (idx ! 0) {s[idx] ;}int end start;while (end size s[end] ! ) {s[idx] s[end];}std::reverse(s.begin() idx - (end - start), s.begin() idx);start end;}}s.erase(s.begin() idx, s.end());return s;}
};