文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给定一个字符串,逐个翻转字符串中的每个单词。

示例:
输入: ["t","h","e"," ","s","k","y"," ","i","s"," ","b","l","u","e"]
输出: ["b","l","u","e"," ","i","s"," ","s","k","y"," ","t","h","e"]注意:
单词的定义是不包含空格的一系列字符
输入字符串中不会包含前置或尾随的空格
单词与单词之间永远是以单个空格隔开的进阶:使用 O(1) 额外空间复杂度的原地解法。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-words-in-a-string-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 先整体反转一遍
  • 然后找到每个单词,逐个单词反转
  • 原地,O(1) 空间复杂度
class Solution {public:void reverseWords(vector<char>& s) {reverse(s, 0, s.size()-1);int l = 0, r;while(r < s.size()){while(r < s.size() && s[r]!=' ')//没遇见分隔符r++;reverse(s, l, r-1);r++;//跳过空格l = r;}}void reverse(vector<char>& s, int l, int r){while(l < r)swap(s[l++],s[r--]);}
};

64 ms 17.3 MB


长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 186. 翻转字符串里的单词 II相关推荐

  1. [leetcode]151.翻转字符串里的单词

    给你一个字符串 s ,逐个翻转字符串中的所有 单词 . 单词 是由非空格字符组成的字符串.s 中使用至少一个空格将字符串中的 单词 分隔开. 请你返回一个翻转 s 中单词顺序并用单个空格相连的字符串. ...

  2. leetcode 151. 翻转字符串里的单词

    难度:中等 频次:69 题目: 给你一个字符串 s ,逐个翻转字符串中的所有 单词 . 单词 是由非空格字符组成的字符串.s 中使用至少一个空格将字符串中的 单词 分隔开. 请你返回一个翻转 s 中单 ...

  3. LeetCode 151. 翻转字符串里的单词(栈)

    文章目录 1. 题目信息 2. 解题 1. 题目信息 给定一个字符串,逐个翻转字符串中的每个单词. 示例 1:输入: "the sky is blue" 输出: "blu ...

  4. leetcode 151. 翻转字符串里的单词 c代码 三种方案

    如题: 给定一个字符串,逐个翻转字符串中的每个单词.示例 1: 输入: "the sky is blue" 输出: "blue is sky the"示例 2: ...

  5. leetcode186. 翻转字符串里的单词 II

    给定一个字符串,逐个翻转字符串中的每个单词. 示例: 输入: ["t","h","e"," ","s" ...

  6. 代码随想录算法训练营第八天|● 344.反转字符串● 541. 反转字符串II● 剑指Offer 05.替换空格● 151.翻转字符串里的单词● 剑指Offer58-II.左旋转字符

    一.344.反转字符串 力扣 思路:很简单的一个for循环双指针,left和right交换. class Solution {public void reverseString(char[] s) { ...

  7. 代码随想录算法训练营第八天|344.反转字符串 541. 反转字符串II 剑指Offer 05.替换空格 151.翻转字符串里的单词 剑指Offer58-II.左旋转字符串

    一.344.反转字符串 题目:编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的 ...

  8. 数组翻转_LeetCode刷题实战151:翻转字符串里的单词

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !今天和大家聊 ...

  9. LeetCode--151. 翻转字符串里的单词(字符串翻转,字符串分割)

    翻转字符串里的单词(双指针,字符串分割) 1. 题目描述 2. 题目分析 3. C语言实现 4. Python实现 1. 题目描述 难度:中等 2. 题目分析 这道题我们需要注意的点有以下几个: 每个 ...

最新文章

  1. OkHttp3源码解析(三)——连接池复用
  2. Spring MVC 常用Jar包官方下载地址(官方Maven仓库)
  3. [TCP/IP] TCP流和UDP数据报之间的区别
  4. 【CodeForces - 798D】Mike and distribution (思维构造,贪心,黑科技)
  5. linux实验报告makefile,linux实验二交叉编译和Makefile实验报告.doc
  6. react 设置背景图片 (等比例显示,不拉伸)
  7. Java游戏项目之黄金矿工
  8. Unity Gerstner Waves(模拟大海波浪)
  9. 在 Linux 中查找用户帐户和登录详细信息的 11 种方法
  10. jena 查询 java_使用SPARQL和Jena查询DBpedia
  11. 《点线SLAM系统》
  12. runauto 病毒
  13. 收藏,核心期刊的投稿、审稿、出刊流程详解
  14. 4.4 基金排行数据(Python)
  15. 憨猫的EventLoop事件循环小解
  16. mysql查询数学成绩信息_【MySQL】:利用DQL查询表中的数据
  17. python编程 报错解决:“AttributeError: ‘str‘ object has no attribute ‘decode‘”
  18. 【详细图文教程】通过UNiDAYS进行Apple教育优惠认证
  19. 树莓派存储方案_还在用笨重的NAS存储服务器?你可以自己动手用树莓派DIY一个...
  20. 大数据计算 PCIe 扩展坞系统

热门文章

  1. 【R】语言第四课----读取文件
  2. php mysql xa事务_XA mysql php 分布式事务
  3. my_atio()代码出错原因,完全代码
  4. 程序员修炼之道--从小工到专家(一)
  5. 6. Nginx + PHP + FastGCI安装
  6. Win 7 通过事件管理器查看计算机开机关机时间
  7. [分享]天轰穿VS2005视频教程
  8. Qt中的Q_OBJECT
  9. U-Boot之代码调试
  10. 做技术知道了哪些事情代表自己成熟了?