leetcode_557_反转字符串中的单词 III

给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。

示例 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快一些

猜你喜欢

转载自blog.csdn.net/snow_jie/article/details/80816115