151. Reverse Words in a String
题目的原意是写一个函数对给定的String进行逐个单词的反转。
e.g. given s = "the sky is blue", return "blue is sky the"
要考虑的corner case
1. 是什么构建一个单词?一些非空格的字符串组成一个单词。
2. tab 和 newline 字符是否算作空格字符? 假设不包含任何tab或者newline字符
3. string可以包含首尾空格(leading or trailing spaces)?可以,但是反转的string不包含首尾空格。
4. 如何对待在两个单词之间的多个空格? 可以减少到一个空格。
解题思路:比较容易想到的是先将输入的 String s 拆分成若干个单词word,然后将单个word按照逆序重排。
public String reverseWords(String s){
StringBuilder reversed = new StringBuilder();
String[] words = s.split("\\s+");
for (int i = words.length - 1; i >= 0; i--) {
String word = String.format("%s ", words[i]);
reversed.append(word);
}
return reversed.toString().trim();
}
本文介绍了一种算法,用于反转字符串中的单词顺序,并提供了一个具体的Java实现案例。该算法考虑了多种特殊情况,包括处理首尾空格及多个连续空格。

2690

被折叠的 条评论
为什么被折叠?



