python实现

注意sqlit的时候用一个空格去分,如果是默认的话,多个空格会视为一个空格,最后结果会空格数量对不上

class Solution:
    def reverseWord(self , str: str) -> str:
        str_list = []
        for i in str.split(' '):
            str_list.append(i[::-1])
        return ' '.join(str_list)

c++实现

逐个字母循环,用一个临时单词的变量来存单个单词

  • 遇到非空格就往临时单词里放
  • 遇到空格,就要判断
    • 临时单词中有东西,就反转临时单词,追加到res,再追加空格
    • 临时单词里没东西,直接追加空格
class Solution {
public:
    string swap_word(string s){  //反转字符串
        int len = s.size();
        for(int j=0; j<len/2; j++){
            swap(s[j], s[len-1-j]);
        }
        return s;
    }
    string reverseWord(string str) {
        // write code here
        string res;
        string temp_word = "";   //临时字符串,用来存单个单词
        int i;
        for(i=0; i<str.size(); i++){
            if(str[i] != ' '){   //遇到非空格就往临时单词里放
                temp_word.push_back(str[i]);
            }else{               //遇到空格判断一下临时单词里有东西没,如果有东西,就把单词反转并追加
                if(temp_word != ""){
                    res += swap_word(temp_word); //反转后的单词追加到result
                    temp_word = "";     //置空临时字符串
                }
                res.push_back(' ');
            }
        }
        if(temp_word != "") res += swap_word(temp_word); //最后一个单词
        return res;
    }
};