Leetcode#557. Reverse Words in a String III(反转字符串中的单词 III)

Leetcode#557. Reverse Words in a String III(反转字符串中的单词 III)

题目描述

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

示例 1:

输入: "Let's take LeetCode contest"
输出: "s'teL ekat edoCteeL tsetnoc" 

注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。

思路

分割字符串,再逆序,拼接到字符串

代码实现

package String; /** * 557. Reverse Words in a String III(反转字符串中的单词 III) * 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 */ public class Solution557 { public static void main(String[] args) { Solution557 solution557 = new Solution557(); String s = "Let's take LeetCode contest"; System.out.println(solution557.reverseWords(s)); } /** * 分割字符串,再逆序,拼接到字符串 * * @param s * @return */ public String reverseWords(String s) { String[] words = s.split(" "); StringBuilder sb = new StringBuilder(); int len = words.length; if (words.length == 1) { return reverseString(s); } for (int i = 0; i < len - 1; i++) { sb.append(reverseString(words[i]) + " "); } sb.append(reverseString(words[len - 1])); return String.valueOf(sb); } public String reverseString(String s) { char[] chars = s.toCharArray(); int i = 0; int j = chars.length - 1; while (i < j) { char temp = chars[i]; chars[i] = chars[j]; chars[j] = temp; i++; j--; } return new String(chars); } } 
posted @ 2018-09-03 10:55 武培轩 阅读( ...) 评论( ...) 编辑 收藏
全部评论

相关推荐

认真搞学习:28小登的建议,投算法岗不要写什么物理竞赛,互联网+,多写点项目,用什么算法做了什么。还有本科算法是不可能的开发你这个也没有项目啊
点赞 评论 收藏
分享
06-14 19:09
门头沟学院 Java
darius_:给制造业搞的,什么物料管理生产管理,设备管理点检,最最关键的就是一堆报表看板。个人觉得没啥技术含量都是些基本的crud,但是业务很繁琐那种
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务