输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"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"
解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。

说明:

无空格字符构成一个单词。
输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
注意:本题与主站 151 题相同:https://leetcode-cn.com/problems/reverse-words-in-a-string/

代码:

class Solution {

public String reverseWords(String s) {

String x = s.trim();

char arr[] =  s.toCharArray();

StringBuilder sb = new StringBuilder();

List<String> list = new ArrayList<>();

for(int i=0;i<arr.length;i++)

{

if(arr[i]!=' ')

{

sb.append(arr[i]);

}

if(i!=arr.length-1)

{

if(arr[i]==' '&&arr[i+1]!=' ')

{

String t = sb.toString();

list.add(t);

sb = new StringBuilder();

}

}

else

{

String t = sb.toString();

list.add(t);

}

}

int k =list.size()-1;

sb = new StringBuilder();

while(k>=0)

{

sb.append(' ');

sb.append(list.get(k));

k--;

}

return sb.toString().trim();

}

}

【剑指offer】面试题58 - I:翻转单词顺序(Java)相关推荐

  1. 剑指offer面试题58 - I. 翻转单词顺序(双指针)

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

  2. 剑指offer——面试题42-2:翻转单词顺序

    剑指offer--面试题42-2:翻转单词顺序 20180906整理 Solution1: 自己想的垃圾算法 对于c++中的string对象,substr()和erase()函数都是很常用的,常见用法 ...

  3. [剑指offer]面试题42:翻转单词顺序 VS左旋转字符串

    面试题42:翻转单词顺序 VS左旋转字符串 题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理.例如输入字符串"I am a st ...

  4. 剑指offer——面试题58:二叉树的下一个结点

    剑指offer--面试题58:二叉树的下一个结点 这个题要认真分析一下... Solution1: 自己想出来的破算法 /* struct TreeLinkNode {int val;struct T ...

  5. 剑指offer——面试题14:调整数组顺序使奇数位于偶数前面

    剑指offer--面试题14:调整数组顺序使奇数位于偶数前面 Solution1: 顺序交换,比较好的算法!!! class Solution { public:void reOrderArray(v ...

  6. 剑指offer系列(44)翻转单词顺序列

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

  7. 剑指Offer - 面试题58 - II. 左旋转字符串

    1. 题目 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部.请定义一个函数实现字符串左旋转操作的功能.比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转 ...

  8. 剑指offer 面试题58 - II. 左旋转字符串

    字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部.请定义一个函数实现字符串左旋转操作的功能.比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结 ...

  9. 剑指offer面试题[58]-二叉树的下一个结点

    题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. /* struct TreeLinkNode {int ...

  10. 剑指offer面试题58 - II. 左旋转字符串(切片)(一行代码)

    题目描述 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部.请定义一个函数实现字符串左旋转操作的功能.比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两 ...

最新文章

  1. 数论题目入门 基础积攒
  2. LeetCode 799 JavaScript
  3. 无意间看到Pure-Mvc记录下
  4. Android的消息处理机制——Looper,Handler和Message浅析
  5. python调试蓝牙适配器_我写了一个查看Android手机的蓝牙模块是否开启的代码。在AVD上调试,因为是电脑,没有蓝牙适配器,可是...
  6. IT程序员们平时都喜欢逛什么论坛呢?
  7. AUTOSAR标准与产业发展动态
  8. 用SegNet进行室内布局语义分割
  9. 【深度优先搜索】计蒜客:正方形
  10. python中randint用法_python中的randint,引入模块
  11. 小说规则失效后怎么更改?免费小说采集器
  12. 离散数学及其应用(一)
  13. h3c交换机重启_h3c交换机清空配置命令
  14. 个人电脑php网站搭建,如何在本地电脑搭建自己网站的流程(图文教程)
  15. CodeForces Canada Cup 2016 A、B水题 _(:з」∠)_
  16. C# 判断本机是否安装Excel及多版本安装?获取Excel进程信息和打开Excel应用软件
  17. 电商横幅BANNER素材PSD分层模板|多品类,都能借鉴!
  18. NR DCI Format介绍
  19. oc中写c语言的方法,OC语言description步骤和sel
  20. 如何在Linux服务器上挂载新硬盘?我用几个命令就摆平了

热门文章

  1. python3 整除_python如何整除
  2. dategurd oracle_Oracle 时间和日期处理
  3. Hadoop学习之yarn
  4. 遍历删除_面试难题:List 如何一边遍历,一边删除?
  5. Java用sqlit拆分小数_如何将SQLite列中的分隔值拆分为多列
  6. redis如何设置定时过期_redis补充6之Redis 设置过期时间
  7. python读单行文本求平均值_如何从文本文件python中的数字列表中找到平均值
  8. 史上最大多模态图文数据集发布!
  9. 高效利用无标注数据:自监督学习简述
  10. Android Binder漏洞挖掘技术与案例分享