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();
}
}