给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例 1:
输入: "Let's take LeetCode contest" 输出: "s'teL ekat edoCteeL tsetnoc"
注意: 在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。
reverseWord()
,用于翻转每个单词;reverseWords()
中,先将字符串按空格分割后存在字符串数组arr
中;reverseWord()
,然后将其拼接到最后返回的字符串resultStr
;resultStr
去除前后空格后返回;package string;
import java.util.Arrays;
/**
* Created with IntelliJ IDEA.
* Version : 1.0
* Author : 村雨遥
* Email : cunyu1024@foxmail.com
* Website : https://cunyu1943.github.io
* 公众号 : 村雨遥
* Date : 2020/4/5 21:07
* Project : LeetCode
* Package : string
* Class : FiveSevenSeven
* Desc : 557. 反转字符串中的单词 III
*/
public class FiveSevenSeven {
public static void main(String[] args) throws Exception {
String str = "Let's take LeetCode contest";
FiveSevenSeven fiveSevenSeven = new FiveSevenSeven();
System.out.println(fiveSevenSeven.reverseWord("let's"));
System.out.println(fiveSevenSeven.reverseWords(str));
}
/**
* 反转字符串中的单词
* @param s
* @return 反转单词后的字符串
*/
public String reverseWords(String s) {
String resultStr = " ";
String[] arr = s.split(" ");
for (String value : arr) {
resultStr = resultStr.concat(reverseWord(value) + " ");
}
return resultStr.trim();
}
/**
* 反转一个单词
* @param s
* @return 反转后的单词
*/
public String reverseWord(String s) {
String str = "";
for (int i = 0; i < s.length(); i++) {
str += s.charAt(s.length() - 1 - i);
}
return str;
}
}
[1]
557. 反转字符串中的单词 III: https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/