
0x01,问题简述
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
0x02,示例
示例:
输入:"Let's take LeetCode contest"
输出:"s'teL ekat edoCteeL tsetnoc"
提示:
在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。
0x03,题解思路
利用已有的数据结构实现字符串的翻转
0x04,题解程序
public class ReverseWordsTest3 {
public static void main(String[] args) {
String str = "Let's take LeetCode contest";
String reverseWords = reverseWords(str);
System.out.println("reverseWords = " + reverseWords);
}
public static String reverseWords(String s) {
if (s == null || s.length() == 0) {
return s;
}
String[] strings = s.split(" ");
StringBuilder stringBuilder = new StringBuilder(s.length());
for (String s1 : strings
) {
StringBuilder t = new StringBuilder();
t.append(s1);
stringBuilder.append(t.reverse().toString());
stringBuilder.append(" ");
}
return stringBuilder.substring(0,stringBuilder.length() - 1);
}
}
0x05,题解程序图片版

0x06,总结一下
字符串翻转是特别常见的一类题了,各种解决思路,本题也是基于最符合常规逻辑的解法,代码敲一敲,就差不多理解了,这也是为啥一直在说的,代码要多练