LeetCode.557. 反转字符串中的单词 III

题目

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

示例 1:

输入: “Let’s take LeetCode contest”
输出: “s’teL ekat edoCteeL tsetnoc”

注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。

思路

用一个变量记录上一次遇到空格的后一个坐标(也就是常规情况下单词的开头),如果再遇到空格,就逆序回去存在新的字符串里,再更新记录值,直到最后循环结束,但是还没完,因为最后一个单词末尾没有空格,记得加上

代码

class Solution {
public:
    string reverseWords(string s) {
        if(s.length() == 0)
            return s;
        string str;
        int re=0;
        int i;
        for(i=0;i < s.length();i++){
            if(s[i]==' '){
                for(int j=i-1;j>=re;j--)
                    str += s[j];
                re = i + 1;
                str += ' ';
            }
        }
        for(i=s.length()-1;i>=re;i--)
             str += s[i];
        return str;
    }
};

猜你喜欢

转载自blog.csdn.net/liyuanyue2017/article/details/80498948
今日推荐