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. 概说《TCP/IP详解 卷2》缘起
  2. WCF+Silverlight部署本机备忘
  3. 基于FPGA的波速形成实现
  4. 移动办公系统 服务器地址,安卓系统移动办公服务器地址
  5. .NET6之MiniAPI(四):配置
  6. MyBatis - MyBatis Generator 生成的example 如何使用 and or 简单混合查询
  7. SignalR 跨域解决方案全面
  8. 设备驱动基础学习--/proc下增加节点
  9. mysql分布式数据库_分布式数据库搭建详细教程
  10. Oracle 11gR2 sessions=1.5*processes+22
  11. 计算机板卡设计仿真,电子技能训练(1-1)201492.ppt
  12. JavaCV最小依赖
  13. 如何用程序哄老婆开心
  14. 2020年岁末的年终总结——来自一位70后的大龄程序员的总结分享
  15. IDEA 打开窗口切换的快捷键
  16. DISPLAY尚未设置
  17. android水波纹教程,Android实现简单水波纹效果
  18. 南充中等计算机专业学校排名,南充计算机/电脑学校哪里好|南充外国语中等专业学校计算机应用|顺庆计算机学校怎么样|南充中专学校...
  19. 离散数学 代数系统思维导图
  20. c++学习笔记-二进制文件操作(哔站-黑马程序员c++教学视频)

热门文章

  1. 测试过程中遇到过的问题
  2. Linux操作系统~系统文件IO,什么是文件描述符fd?什么是vfs虚拟文件系统
  3. parentNode和parentElement的区别
  4. 【JMeter】JMeter如何模拟不同的网络速度
  5. 测试多线程爬取百度图片
  6. Hack The Box - Crocodile关卡
  7. 手机端返回上一级代码php,(转)移动端自定义返回上一页的方法:history
  8. Oracle 查询索引
  9. Ubuntu 20.04.4配制pPX4开发环境
  10. linux设置周期性计划任务,Linux中计划任务、周期性任务设置