题目地址:
https://leetcode.com/problems/reverse-words-in-a-string-iii/
给定一个英文句子,单词以空格分隔。要求将句子中所有单词翻转,返回翻转后的句子。代码如下:
public class Solution {
public String reverseWords(String s) {
if (s == null || s.isEmpty()) {
return s;
}
// res记录最终结果,sb记录遇到的单词
StringBuilder res = new StringBuilder(), sb = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) != ' ') {
sb.append(s.charAt(i));
} else {
res.append(sb.reverse()).append(' ');
sb.setLength(0);
}
}
// 还需要把最后一个单词加进res
res.append(sb.reverse());
return res.toString();
}
}
时空复杂度 O ( n ) O(n) O(n)。