Given an input string, reverse the string word by word.
Example 1:
Input: "the sky is blue
" Output: "blue is sky the
"
Example 2:
Input: " hello world! " Output: "world! hello" Explanation: Your reversed string should not contain leading or trailing spaces.
Example 3:
Input: "a good example" Output: "example good a" Explanation: You need to reduce multiple spaces between two words to a single space in the reversed string.
Note:
- A word is defined as a sequence of non-space characters.
- Input string may contain leading or trailing spaces. However, your reversed string should not contain leading or trailing spaces.
- You need to reduce multiple spaces between two words to a single space in the reversed string.
本題沒用太多技巧,單純解析再拼接,當中間有多個空格時,會出點小問題,解析的字符串數組中有空字符串,篩選掉即可。Accepted代碼如下:
class Solution {
public String reverseWords(String s) {
String str = s.replaceAll("\\s*", "");
if (str.length() <= 1) {
return str;
}
String[] A = s.split(" ");
StringBuilder sb = new StringBuilder();
for (int i = A.length - 1; i >= 0; i--) {
if (!"".equals(A[i])) {
sb.append(A[i].trim());
sb.append(" ");
}
}
return sb.toString().trim();
}
}