【刷题训练】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;
    }
};

运行截图

相关推荐
-森屿安年-6 分钟前
LeetCode 11. 盛最多水的容器
开发语言·c++·算法·leetcode
2501_941803629 分钟前
Go高性能分布式爬虫与Web数据采集实战分享:多线程抓取、反爬策略与性能优化经验
leetcode
flashlight_hi13 分钟前
LeetCode 分类刷题:112. 路径总和
javascript·算法·leetcode
努力学习的小廉1 小时前
我爱学算法之—— 多源BFS
算法·宽度优先
2501_941144032 小时前
人工智能赋能智慧交通互联网应用:智能出行与交通管理优化实践探索》
leetcode
WWZZ20252 小时前
快速上手大模型:深度学习11(数据增强、微调、目标检测)
人工智能·深度学习·算法·目标检测·计算机视觉·大模型·具身智能
fashion 道格2 小时前
深入理解队列的艺术
数据结构·算法
大白IT2 小时前
第四部分:决策规划篇——汽车的“大脑”(第8章:行为决策——车辆的“驾驶策略师”)
人工智能·算法·机器学习
minji...2 小时前
C++ AVL树(二叉平衡搜索树)的概念讲解与模拟实现
数据结构·c++·b树·算法·avl
CNRio2 小时前
ZUC国密算法深度研究:原理、实现与应用(Python、Rust)
python·算法·rust