557. 反转字符串中的单词 III

给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。

  • 示例:
    输入:“Let’s take LeetCode contest”
    输出:“s’teL ekat edoCteeL tsetnoc”

解题思路


由于String类型是不可修改的,所以可以用StringBuffer或者char[]来进行
由于char[]效率更高,所以利用toCharArray,转换到char[]类型。
然后就开始遍历碰到’ '就暂停然后,这个区间进行排序即可。因此需要引入又给变量储存。

代码

class Solution {public String reverseWords(String s) {char[] str = s.toCharArray();int index = 0;for (int i = 0; i < str.length; i++) {if (str[i] == ' ') {reverse(str, index, i - 1);index = i + 1;}}reverse(str, index, str.length - 1);return new String(str);}private void reverse(char[] str, int left, int right) {for(int i = left; i <= (left + right) / 2; i++){str[i] ^= str[right+left-i] ^ (str[right+left-i] = str[i]);    //位运算永远是交换最快的 }}
}

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

557. 反转字符串中的单词 III相关推荐

  1. 557. 反转字符串中的单词 III golang 数组和字符串反转

    题目 189.反转数组 557. 反转字符串中的单词 III 557. 反转字符串中的单词 III LeetCode链接 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初 ...

  2. C#版(击败97.76%的提交) - Leetcode 557. 反转字符串中的单词 III - 题解

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. Leetcod ...

  3. LeetCode 557. 反转字符串中的单词 III

    文章目录 1. 题目描述 2. 解题思路 3. 代码实现 1. 题目描述 题目链接:557. 反转字符串中的单词 III 2. 解题思路 此题也可以直接在原字符串上进行操作,避免额外的空间开销. 当找 ...

  4. LeetCode 557. 反转字符串中的单词 III(栈)

    文章目录 1. 题目信息 2. 解题 2.1 栈 2.2 STL reverse() 1. 题目信息 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: ...

  5. 【leetcode】557 反转字符串中的单词III(字符串)

    题目链接:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/ 题目描述 给定一个字符串,你需要反转字符串中每个单词的字符顺序 ...

  6. 从零单刷Leetcode(JAVA描述)—— 557. 反转字符串中的单词 III

    链接:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格 ...

  7. LeetCode 557 反转字符串中的单词 III

    LeetCode 557.给定一个字符串,你需要颠倒一个句子中每个单词中的字符顺序,同时保留空格和初始单词顺序. class Solution {public String reverseWords( ...

  8. 文巾解题 557. 反转字符串中的单词 III

    1 题目描述 2 解题思路 2.1 单词倒转+使用join函数 import copy class Solution(object):def reverseWords(self, s):"& ...

  9. leetcode 557. 反转字符串中的单词 III(Java版)

    题目 https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/ 题解 class Solution {public String ...

最新文章

  1. 使用apidocJs快速生成在线文档
  2. Android系统Recovery工作原理之使用update.zip升级过程分析(五)
  3. Linux编程获取网络信息总结
  4. 分布式系统——zabbix 用 onealert实现报警、agent主动模式、proxy代理
  5. 神策数据实战学堂开课,分享行业最佳业务和技术实践
  6. Ext1.X的CheckboxSelectionModel默认全选之后不允许编辑的BUG解决方案
  7. mysql1577_使用Navicat for MySQL的1577错误解决办法
  8. 桌面在计算机哪个文件夹,windows的桌面文件夹是哪个?
  9. c++ stl 获取最小值_如何在C ++ STL中找到向量的最小/最小元素?
  10. 北航计算机学院博士机试考试题,北航2015考博真题回忆及全套资料 - 考博 - 小木虫 - 学术 科研 互动社区...
  11. python执行批处理文件_如何从Python中执行批处理文件,从而改变调用进程的环境?...
  12. 9种让肌肤美白的简单方法 - 生活至上,美容至尚!
  13. 微信小程序下载pdf到本地的坑
  14. 学生成绩管理系统 需求规格说明书
  15. 在网页中加入“加载中提示”的方法
  16. win7系统64位下安装sql server2000时提示兼容性问题
  17. C#文字播放语音功能System.Speech类库的使用
  18. Spark RDD常用算子-Transformation(Python版)
  19. html 气泡动画效果,CSS 动画实现动态气泡背景的方法
  20. TextGrabber重大更新,识别文字并实时离线翻译,支持中文

热门文章

  1. C#(WinForm) + MySQL的中文编码问题(MySQL中文编码的终极解决方案)
  2. 第十届 蓝桥杯样题 ——结果填空
  3. 2015年第六届蓝桥杯 - 省赛 - C/C++大学A组 - B. 星系炸弹
  4. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1053:最大数输出
  5. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车黑线循迹、避障、遥控实验综合程序
  6. Java 利用InetAddress类确定特殊Ip地址
  7. 【机器视觉】 endif算子
  8. 【Tools】虚拟串口工具之VSPD10
  9. 【嵌入式】Modbus TCP功能码
  10. 【Qt】Qt窗口程序