LeetCode -- 151. 反转字符串中的单词(手写一个trim函数)

发布时间 2023-08-16 14:24:20作者: 深渊之巅

 

本题我们采用

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); } };