[Leetcode557] 反转字符串中的单词 III

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

python我用了函数内置的操作[::-1]翻转。

class Solution(object):
    def reverseWords(self, s):
        """
        :type s: str
        :rtype: str
        """
        return ' '.join([i[::-1] for i in s.split(' ')])

C++我没有用标准库reverse函数,而是用了两个迭代去依次遍历寻找单词然后逐个单词反转。

class Solution {
public:
    string reverseWords(string s) {
        int i = 0;
        int j = 0;
        string res;
        while(j < s.length()){
            if(j != (s.length() - 1)){
                if(s[j] != ' ') j += 1;
                else{
                    for(int k = (j - 1);k >= i;k--) res += s[k];
                    res += ' ';
                    j += 1;
                    i = j;
                }
            }
            else if(i == j){
                res += s[i];
                break;
            }
            else{
                for(int k = j;k >= i;k--) res += s[k];
                break;
            }
        }
        return res;
    }
};

猜你喜欢

转载自blog.csdn.net/qq_40501689/article/details/82960076