题目比较简单,需要注意两个连续的空格的时候输出为一个空格。
如果输入只有空格,应返回空字符串。
public class Solution {
public String reverseWords(String s) {
int begin = s.length() - 1;
StringBuilder sb = new StringBuilder();
int i = s.length() - 1;
while (i >= 0) {
char c = s.charAt(i);
if (c == ' ') {
for (int j = i + 1; j <= begin; j++) {
sb.append(s.charAt(j));
}
if (begin > i) {
sb.append(s.charAt(i));
}
while (i >= 0 && s.charAt(i) == ' ') {
i--;
}
begin = i;
} else {
i--;
}
}
for (int j = 0; j <= begin; j++) {
sb.append(s.charAt(j));
}
return sb.toString().trim();
}
public static void main(String[] args) {
Solution s = new Solution();
String ss = s.reverseWords(" a b c");
System.out.println(ss.length());
System.out.println(ss);
}
}