文章目录

  • 1. 题目描述
  • 2. 解题思路
  • 3. 代码实现

1. 题目描述

题目链接:557. 反转字符串中的单词 III

2. 解题思路

此题也可以直接在原字符串上进行操作,避免额外的空间开销。

当找到一个单词的时候,我们交换字符串第一个字符与倒数第一个字符,随后交换第二个字符与倒数第二个字符……如此反复,就可以在原空间上翻转单词。

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

此时我们交换反转第一个单词 Let's 的顺序

此时 i 还是指向空格的,所以我们需要再把 i 往后移动,让它指向下一个单词

这样,我们就完成了对一个单词的反转,我们用个 while 循环完成对整个句子里面单词的反转,而循环结束的条件就是 i < s.length()

3. 代码实现

代码示例

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

LeetCode 557. 反转字符串中的单词 III相关推荐

  1. C#版(击败97.76%的提交) - Leetcode 557. 反转字符串中的单词 III - 题解

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. Leetcod ...

  2. LeetCode 557. 反转字符串中的单词 III(栈)

    文章目录 1. 题目信息 2. 解题 2.1 栈 2.2 STL reverse() 1. 题目信息 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: ...

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

    LeetCode 557.给定一个字符串,你需要颠倒一个句子中每个单词中的字符顺序,同时保留空格和初始单词顺序. class Solution {public String reverseWords( ...

  4. leetcode 557. 反转字符串中的单词 III(Java版)

    题目 https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/ 题解 class Solution {public String ...

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

    557. 反转字符串中的单词 III 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例: 输入:"Let's take LeetCode cont ...

  6. 557. 反转字符串中的单词 III golang 数组和字符串反转

    题目 189.反转数组 557. 反转字符串中的单词 III 557. 反转字符串中的单词 III LeetCode链接 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初 ...

  7. Leetcode 557 反转字符串中的单词

    Leetcode 557 反转字符串中的单词 题目描述: 给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例1: 输入:s = "Let's ...

  8. 【leetcode】557 反转字符串中的单词III(字符串)

    题目链接:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/ 题目描述 给定一个字符串,你需要反转字符串中每个单词的字符顺序 ...

  9. 从零单刷Leetcode(JAVA描述)—— 557. 反转字符串中的单词 III

    链接:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格 ...

最新文章

  1. IntelliJ IDEA中JAVA连接MYSQL
  2. 学python可以做什么知乎-Python学到什么程度可以面试工作?
  3. SpringMVC执行流程源码分析
  4. SharePoint入门识记-整体架构
  5. linux svn 面板,Linux下SVN服务器搭建(CentOS+Subversion)
  6. 云服务器虚拟主机区别,云服务器和虚拟主机的区别
  7. python场景识别_python 场景
  8. iPhone4S安装Linux系统,别失望太早 iPhone 4S其实就是iPhone 5
  9. STL中queue(队列)介绍
  10. a letter and a number
  11. USBVIEW(带已分配带宽显示功能)-电脑圈圈
  12. 网页设计软件列表HTML,【网站设计用什么软件】网页设计软件具体有哪些,常见的十种网页设计软件介绍!...
  13. 【BZOJ1106】【POI2007】立方体大作战tet(树状数组+贪心)
  14. Windows10怎么改分辨率?Win10分辨率设置教程(最新)
  15. 百度竞价推广之关键词选择技巧
  16. 【程序员如何买基金 一】基金的优势及分类
  17. 苹果专用视频播放器Elmedia Video Player pro
  18. 安徽大学计算机学院张兴义教授,“2018年CCF合肥为新研究生导航” 开启复合型人才培养之路...
  19. 9、XAML名称空间详解
  20. C++调用opencv完成运动目标捕捉

热门文章

  1. C++命名空间(名字空间)
  2. 曙光来临!Nature终于发现了新冠特效药?或将彻底终结新冠时代!
  3. 傻瓜教学——二进制数转换十进制数,十进制数转换二进制数的方法(方法特简单)
  4. 忘记密码找不回?不存在的:python自动解密解码,简直异常轻松~
  5. jQuery中的DOM遍历方法
  6. 草图大师三维建模工具SketchUp Pro 2023 中文版下载
  7. 魅族16s是Android几,魅族16s真机上手:骁龙855+全球最小前摄,仅需3198
  8. Cocos2d-x初学者教程
  9. (C语言)数据结构算法-病毒感染检测(BF算法KMP算法)
  10. CSS 如何实现文字两端对齐