【刷题训练】LeetCode:557. 反转字符串中的单词 III

557. 反转字符串中的单词 III

题目要求

示例 1:

输入:s = "Let's take LeetCode contest"

输出:"s'teL ekat edoCteeL tsetnoc"

示例 2:

输入: s = "Mr Ding"

输出:"rM gniD"

思路:

第一步:让 i 指向起始位置,当 i 不为空格时,就往后挪动,遇到空格就停下来,此时 i 指向空格

第二步:交换反转第一个单词 Let's 的顺序

第三步:重复1,2步骤。将所有的单词都自己反转。如下

如果是反转每个单词在顺序,那么就在加上第四步。

第四步:整体反转一遍。

C++代码

cpp 复制代码
class Solution {
public:
    string reverseWords(string s) {
        int len = s.length();
        int i = 0;
        while (i < len) {
            int start = i;
            // 1.找到第一个单词,遇到空格就停止
            while (i < len && s[i] != ' ') {
                i++;
            }
            
            // 2.反转单词的顺序
            int left = start;
            int right = i - 1;
            while (left < right) {
                swap(s[left], s[right]);
                left++;
                right--;
            }

            // 3.此时i还是指向空格的,所以继续让i++,指向下一个单词
            while (i < len && s[i] == ' ') {
                i++;
            }
        }
        return s;
    }
};

运行截图

相关推荐
GuWenyue1 小时前
传统Agent工具两大痛点!300行代码落地MCP跨语言工具,彻底解耦LLM与工具
前端·人工智能·算法
我叫洋洋3 小时前
C ++ [ hello world ]
c语言·c++·算法
奋发向前wcx4 小时前
y1,y2总复习笔记5 2026.7.19
数据结构·笔记·算法
战族狼魂7 小时前
高频面试题精选:分治与AI Agent架构
人工智能·算法·大模型·大语言模型
李剑一7 小时前
你用过网易的将军令嘛?它底层实现账号保护的原理相当简单粗暴
算法
Scott9999HH7 小时前
告别流量波动玄学!从法拉第电磁定律到底层 C/C++ 流量累积算法,深度解密工业级电磁流量计选型与开发
c语言·c++·算法
中达瑞和-高光谱·多光谱8 小时前
1nm到8nm光谱分辨率,你的应用该选哪款光谱相机?
算法·高光谱·高光谱相机
香辣牛肉饭8 小时前
【算法】动态规划 最长公共子序列(LCS)
经验分享·笔记·算法·动态规划
旖-旎9 小时前
LeetCode 279:完全平方数(完全背包)—— 题解
c++·算法·leetcode·动态规划·背包问题