LeetCode -- 151. 反转字符串中的单词(手写一个trim函数)
本题我们采用
class Solution { public: string reverseWords(string s) { stack<string> stk; int n = s.size(), l = 0, r = n - 1; //trim函数 while(l < n && s[l] == ' ') l ++ ; while(r >= 0 && s[r] == ' ') r -- ;
//这两个判断要加上,否则会有意想不到的错误,应该是语言本身的问题 if(l != 0) s.erase(s.begin(), s.begin() + l); if(r != n - 1) s.erase(s.begin() + r + 1, s.end()); n = s.size(); l = 0, r = 0; while(r < n) { while(s[r] != ' ' && r < n) r ++ ; stk.push(s.substr(l, r - l)); while(s[r] == ' ') r ++ ; l = r; } string res; while(stk.size()) { res += stk.top(); res += ' '; stk.pop(); } return res.substr(0, res.size() - 1); } };