- class Solution {
- public:
- void rever(string& s, int begin, int end){
- if(s.size() <= 1) return;
- int b = begin, e = end;
- while(b < e){
- char t = s[b];
- s[b] = s[e];
- s[e] = t;
- b++;
- e--;
- }
- }
- void reverseWords(string &s) {
- if(s.size() <= 0) return;
- int len = s.size();
- int begin = 0;
- int end = 0;
- int index = 0;
- int count = 0;
- while(index < len){
- while(index < len && s[index] == ' ') index++;
- if(index == s.size())
- break;
- if(count) s[end++] = ' ';
- begin = end;
- while(index < len && s[index] != ' '){
- s[end++] = s[index++];
- }
- rever(s, begin, end - 1);
- count++;
- }
- s.resize(end); //这句话很重要
- rever(s, 0, end-1);
- }
- };
151. Reverse Words in a String
最新推荐文章于 2020-04-10 22:23:24 发布