题目:
翻转字符串里的单词
解法:
先反转字符串, 在反转单词, 即可达到目的.
public String reverseWords (String s){
s = ' ' + s.trim();
// 先反转字符串, 再反转单词即可.
StringBuilder sb = new StringBuilder();
// 从后往前遍历, 相当于反转字符串
for (int i = s.length() - 1; i >= 0; i--) {
if (s.charAt(i) != ' ') {
// 检测到单词, 先搞定边界
int start = i;
while (start >= 0) {
if (s.charAt(start) == ' ') {
break;
}
start--;
}
// 添加一个单词
for (int j = start; j <= i; j++) {
sb.append(s.charAt(j));
}
i = start;
}
}
return sb.length() < 2 ? "" : sb.substring(1);
}
网友评论