给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例:
输入:"Let's take LeetCode contest"
输出:"s'teL ekat edoCteeL tsetnoc"
提示:
在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。
对每个单词进行翻转,最后返回即可。
public class ReverseWordsTest {
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;
}
StringBuilder stringBuilder = new StringBuilder(s.length());
String[] split = s.split(" ");
for (String str : split) {
StringBuilder t=new StringBuilder();
t.append(str);
stringBuilder.append(t.reverse().toString());
stringBuilder.append(" ");
}
return stringBuilder.substring(0, stringBuilder.length() - 1);
}
}
本题利用现有的方法进行操作,本质上还是双指针的思路进行解决,我们可以去看下具体的实现思路,这里基本上是给出了比较容易理解的思路,应该还是很好理解的。
算法汇总:leetcode刷题汇总150道