AcWing
  • 首页
  • 活动
  • 题库
  • 竞赛
  • 应用
  • 更多
    • 题解
    • 分享
    • 商店
    • 问答
  • 吐槽
  • 登录/注册

LeetCode 151. 翻转字符串里的单词

作者: 作者的头像   Oyasumi1024 ,  2023-01-25 20:33:40 ,  所有人可见 ,  阅读 7


0


class Solution {
public:
    string reverseWords(string s) {
        int k = 0, n = s.size();
        for (int i = 0; i < n; i ++ )
        {
            if (s[i] == ' ')    continue;
            int j = i, t = k;
            while (j < n && s[j] !=' ' )    s[t ++ ] = s[j ++ ];
            reverse(s.begin() + k, s.begin() + t);  // 将该单词反转
            s[t ++ ] = ' '; // 在该单词后面添加一个空格
            i = j, k = t; 
        }
        // 由于我们在循环中的每个完整单词后面都添加了一个空格  
        // 所以这里需要特殊处理掉这个空格
        if (k)  k -- ;
        // 将后面多余的东西删除(注意后面多余的东西包括字符或空格,不一定全都是空格)
        s.erase(s.begin() + k, s.end());
        reverse(s.begin(), s.end());    // 将整体字符串反转
        return s;
    }
};

0 评论

你确定删除吗?
1024
x

© 2018-2023 AcWing 版权所有  |  京ICP备17053197号-1
用户协议  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标
请输入绑定的邮箱地址
请输入注册信息