557. Reverse Words in a String III (5月25日)

解答

class Solution {
public:
    string reverseWords(string s) {
        string temp,result;
        while(1){
            if(s.find(' ')!=string::npos){
                temp=s.substr(0,s.find(' '));
                reverse(temp.begin(),temp.end());
                result += temp+" ";
                s=s.substr(s.find(' ')+1);
            }
            else{
                temp=s;
                reverse(temp.begin(),temp.end());
                result += temp;
                break;
            }
        }
        return result;
    }
};

笔记

  1. 循环的问题,我之前是用s.empty()判断来作为判断条件的,结果会进入死循环。
  2. 找不到空格说明已经只剩最后一个单词了,需要单独处理,
  3. 找到空格时创建新串要加上空格

    result += temp + " ";

补充

  1. 其实可以用s.empty()来作为循环的条件,处理方式为:

    条件:      1 改为 !s.empty()
    else中:     break 改为 s.clear()

猜你喜欢

转载自www.cnblogs.com/cs-niaocai/p/9087936.html