# 训练string类

[TOC]

# 技巧

  • 考虑,能不能加上⭐️哨兵⭐️
  • 使用库函数

# 557. 反转字符串中的单词 III (opens new window)

class Solution {
public:
    string reverseWords(string s) {
        //哨兵
        s.push_back(' ');
        string res;

        int pos=0;
        while( pos<s.size() )
        {
            if( ' '==s[pos] )
            {
                res+=' ';
                ++pos;
            }
            else
            {
                int endpos=s.find(' ', pos);
                string temp=s.substr( pos, endpos-pos );
                reverse( temp.begin(), temp.end() );
                res+=temp;
                pos=endpos;
            }
        }

        res.pop_back();
        return res;
    }
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29