😅双指针
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
| class Solution { public: string reverseWords(string s) { int bg = 0; stack<string> stk; string ms, res = ""; for(int i = 0; i < s.size(); ++i) { if(s[i] == ' ' && s[bg] != ' ') { string ns = s.substr(bg, i - bg); // cout << ns << ns.size() << endl; stk.push(ns); bg = 1 + i; } else if(s[i] == ' '){ bg += 1; } } if(bg < s.size() && s[bg] != ' ') { string ns = s.substr(bg, s.size() - bg); stk.push(ns); } while(stk.size()) { ms = stk.top(); stk.pop(); res += ms + ' '; } res.erase(res.end() - 1); return res; } };
|
Accepted
25/25 cases passed (12 ms)
Your runtime beats 54.85 % of cpp submissions
Your memory usage beats 26.22 % of cpp submissions (11.8 MB)