文章目录

  • 题目描述
  • 思路 & 代码
    • 二刷

题目描述

  • 用栈来做挺简单的,也可以用双指针。

思路 & 代码

  • 既然是反向,那么从后往前,用双指针截取出字符串即可。
class Solution {// 双指针public String reverseWords(String s) {StringBuilder ans = new StringBuilder();// 去除首尾空格s = s.trim();int left = s.length() - 1, right = left;while(left >= 0){// 找单词开头while(left >= 0 && s.charAt(left) != ' '){left--;}// 加入单词ans.append(s.substring(left + 1, right + 1) + " ");// 找单词结尾while(left >= 0 && s.charAt(left) == ' '){left--;}// 更新 rightright = left;}return ans.toString().trim();}
}

二刷

  • 不知道为啥耗时少了很多。。
class Solution {public String reverseWords(String s) {s = s.trim();StringBuilder sb = new StringBuilder();int left = s.length() - 1;while(left >= 0) {int right = left;while(left >= 0 && s.charAt(left) != ' ') {left--;}sb.append(" ").append(s.substring(left + 1, right + 1));while(left >= 0 && s.charAt(left) == ' ') {left--;}}return sb.toString().trim();}
}

【LeetCode笔记】剑指 Offer 58 - I. 翻转单词顺序(Java、栈、双指针)相关推荐

  1. 【LeetCode】剑指 Offer 58 - I. 翻转单词顺序

    [LeetCode]剑指 Offer 58 - I. 翻转单词顺序 文章目录 [LeetCode]剑指 Offer 58 - I. 翻转单词顺序 一.双指针 一.双指针 算法解析: 倒序遍历字符串 s ...

  2. 剑指 Offer 58 - I. 翻转单词顺序 (双指针)

    剑指 Offer 58 - I. 翻转单词顺序 题意: 翻转一个英文句子中单词顺序 解法1 思路: split分割 + 倒序 public static String reverseWords(Str ...

  3. 【算法】剑指 Offer 58 - I. 翻转单词顺序

    1.概述 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理.例如输入字符串"I am a student. ",则输出&quo ...

  4. LeetCode-剑指 Offer 58 - I. 翻转单词顺序

    剑指 Offer 58 - I. 翻转单词顺序 思路一:也是核心思想,就是先把句子中所有字符串取出放入字符串数组,再对数组中的字符串进行操作后重新连接即可,具体问题具体细节还需要按题目要求分析 而遍历 ...

  5. 剑指 offer set 19 翻转单词顺序 字符串左旋

    题目 1. 翻转单词 student. a am I 转换成 I am a student. 2. 字符串左旋 abba 1 转成 bbaa 总结 1. 先对每个单词旋转, 再整齐旋转 2. 先翻转一 ...

  6. 【LeetCode】剑指 Offer 58 - II. 左旋转字符串

    [LeetCode]剑指 Offer 58 - II. 左旋转字符串 文章目录 [LeetCode]剑指 Offer 58 - II. 左旋转字符串 一.字符串切片 二.列表遍历拼接 三.字符串遍历拼 ...

  7. LEETCODE | PYTHON | 剑指 Offer 58 - Ⅱ | 左旋转字符串

    LEETCODE | PYTHON | 剑指 Offer 58 - Ⅱ | 左旋转字符串 1. 题目 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部.请定义一个函数实现字符串左旋转操作 ...

  8. 字符串专题-LeetCode:剑指 Offer 58 - II. 左旋转字符串、LeetCode 459.重复的子字符串、 代码思路和注意点

    文章目录 一.剑指 Offer 58 - II. 左旋转字符串 二.LeetCode 459.重复的子字符串 一.剑指 Offer 58 - II. 左旋转字符串 思路: 预留出n个字符空间s.res ...

  9. Leetcode:剑指 Offer 58 - II. 左旋转字符串(C++)

    目录 问题描述: 实现代码: 暴力循环移动法: 原理思路: 翻转法: 原理思路: 问题描述: 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部.请定义一个函数实现字符串左旋转操作的功能. ...

最新文章

  1. 匹兹堡计算机科学公司,2017美国匹兹堡大学计算机科学CS专业硕士录取
  2. 使用HTML5的自定义数据属性的jQuery选择器
  3. 将c语言转换成汇编语言的软件,如何把汇编语言转换成C语言
  4. 爸,这下你还敢抽烟么?
  5. 【学习笔记】cookie、session、token和分布式session
  6. 美团在Redis上踩过的一些坑-2.bgrewriteaof问题
  7. C++_系列自学课程_第_12_课_结构体
  8. GridView 合并列、行类
  9. wrong ELF class: ELFCLASS64
  10. java 机器学习库_7个最好的Java机器学习开发库
  11. Linux系统磁盘分区格式MBR格式转换GPT
  12. PDF虚拟打印机有什么用?关于PDF虚拟打印机你要知道的事情都在这
  13. centos8安装和启动中文智能拼音
  14. Python字符串及运算
  15. 2021年上半年软件设计师上午真题及答案解析(三)
  16. USB摄像头方案及应用
  17. 计算机已从异常关机中恢复,(BCCode7a蓝屏问题,急!)今天电脑开机放着,人离开了,回来后提示windows从异常关机中恢复...
  18. 探索职场真我---“DISC测评”
  19. 程序员们要注意啦!99% 的创业公司都不值得加入!
  20. ipad 使用command快捷键的用法。

热门文章

  1. Leetcode--136. 只出现一次的数字
  2. spark sql合并小文件_Spark SQL小文件问题在OPPO的解决方案
  3. mAP与IOU的简单介绍
  4. JavaSE——Java介绍与环境变量简述
  5. Linux、Windows、RHEL操作系统镜像
  6. Android实现监测网络状态
  7. Cocos2dx实现象棋之布局
  8. 《深度探索C++对象模型(Inside The C++ Object Model )》学习笔记
  9. Python编程从入门到实践~文件写入
  10. linux 从光盘安装数据,LINUX访问光盘数据