题目链接:https://leetcode.com/problems/reverse-words-in-a-string/
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.
思路:
用trim去除首尾多余的空格,然后用正则表达式进行分割。
AC :
class Solution {
public String reverseWords(String s) {
String[] parts = s.trim().split("\\s+");
String ans = "";
for(int i=parts.length-1;i>0;i--){
ans+=parts[i]+" ";
}
return ans+parts[0];
}
}
或者:
class Solution {
public String reverseWords(String s) {
String[] parts = s.trim().split("\\s+");
StringBuilder sb=new StringBuilder();
for(int i=parts.length-1;i>=0;i--){
sb.append(parts[i]);
if(i!=0){
sb.append(" ");
}
}
return sb.toString();
}
}