T58 - I. 翻转单词顺序

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

示例 1:

输入: “the sky is blue”
输出: “blue is sky the”
示例 2:

输入: "  hello world!  "
输出: “world! hello”
解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
示例 3:

输入: “a good   example”
输出: “example good a”
解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。

说明:

无空格字符构成一个单词。
输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。

思路

双指针, 不过是逆着来

解法 1

没想出来

解法 2

class Solution {public String reverseWords(String s) {String tmp = s.trim();int start = tmp.length() - 1;int end = tmp.length() - 1;String res = "";while(start >= 0) {while(start >= 0 && tmp.charAt(start) != ' ') {start--;}res += tmp.substring(start + 1, end + 1) + " ";while(start >= 0 && tmp.charAt(start) == ' ') {start--;}end = start;}return res.trim();}
}

执行用时:14 ms, 在所有 Java 提交中击败了**9.02%**的用户

内存消耗:38.9 MB, 在所有 Java 提交中击败了**10.76%**的用户

作者:画手大鹏
链接:https://leetcode-cn.com/leetbook/read/illustrate-lcof/59otf1/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

剑指 Offer 笔记: T58 - I. 翻转单词顺序相关推荐

  1. 【剑指offer-Java版】42翻转单词顺序VS左旋转字符串

    反转单词顺序以及左旋转字符串:输入一个英文句子,翻转句子中的单词顺序,单词内部的字母顺序是不变的 – I am a student. -> student. am I 第一步,翻转句子中的所有字 ...

  2. 剑指Offer——(44)翻转单词顺序列

    题目描述: 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,"s ...

  3. 剑指 Offer 笔记: T58 - II. 左旋转字符串

    T58 - II. 左旋转字符串 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部.请定义一个函数实现字符串左旋转操作的功能.比如,输入字符串"abcdefg"和数字 ...

  4. 剑指offer面试题[42]-反转单词顺序VS左旋转字符串

    题目1: 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循环左移K位后的序列输出.例如,字符序列S=&quo ...

  5. 剑指offer笔记(七) 第47题至第53题

    剑指offer笔记(七) 第47题至第53题 前言 一.JZ47 礼物的最大价值 二.JZ48 最长不含重复字符的子字符串 三.JZ49 丑数 四.JZ50 第一个只出现一次的字符 五.JZ51 数组 ...

  6. 萌萌媛の【剑指offer笔记】二维数组中的查找

    题目描述: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整 ...

  7. 剑指offer笔记(一)c++中的关键字有哪些?

    笔记(一) c++中的关键字有哪些? volatile关键字 由于常见的编译器会对其进行优化,release版本下,对一个变量值进行内存修改后,输出结果发现并未输出修改后的值 volatile修饰一个 ...

  8. 剑指offer笔记(11)位运算

    二进制中1的个数 最简单的方法就是,依次右移,再与1&  根据&的结果判断是否为1 int NumOf1(int n) {int count=0;while(n){if(n&1 ...

  9. 剑指offer笔记(十)递归和循环

    递归和循环 什么是递归? 递归就是在一个函数内部调用函数本身 什么是循环? 循环通过设置计算初始值及终止条件,在此范围内重复计算 举例说明一下: 1+2+3+...+n求和 //循环 int sum( ...

最新文章

  1. PyTorch基础(part2)
  2. Linux 安装卸载软件及管理软件仓库
  3. OSPF的虚链路配置
  4. 循环序列模型 —— 1.6 语言模型和序列生成
  5. php作业制作htm,PHP作业-HTML-2020-09-28
  6. python访问多个网页_如何使用python请求登录具有多个页面的CAS?
  7. 标点符号/特殊符号的英文名称
  8. 使用 Windows 7 VHD启动计算机
  9. 计算机术语中cook,计算机中的cookie是什么意思
  10. java私有的构造函数_Java 私有构造函数的使用
  11. 解决黑苹果(bigsur)ALC255声卡声音发虚问题
  12. 小爱同学音色服务器响应失败,小爱同学获取数据失败怎么回事
  13. 使用树莓派4B最新官方烧录软件烧录镜像设置密码,直接登录wifi
  14. 大数据处理系统,分布式存储系统和分布式计算框架介绍
  15. linux 安装Times New Roman字体
  16. C语言实现七夕表白爱心
  17. MLY -- 8.Establish a single-number evaluation metric for your team to optimize
  18. php设置时区的两种方法
  19. 计算机动漫与游戏制作专业素养评价标准,1-计算机动漫与游戏制作专业教学标准.doc...
  20. 基于NodeJS+VUE+Mysql的大学生校园疫情防控管理系统

热门文章

  1. 全球及中国铜质散热管行业市场需求及投资战略研究报告2022-2028年
  2. dotnet 命令大全-理论版
  3. 【CTF杂项】常用的一些加密解密工具网站集合(收藏用)
  4. GBASE南大通用亮相中科软寿险、财险科技“两会”应用高峰论坛
  5. SDSOC加速实录-(1)加速工具及库的概述
  6. Linux文件系统ugo权限划分详解
  7. Flash与Javascript交互时可用ExternalInterface类
  8. 端物流 | 快递驿站的产品逻辑
  9. python 逗号分隔_python逗号分隔
  10. 红信圈是如何重新定义广告传播途径的