标签:alt 空字符串 声明 技术 trim loading 翻转单词 int return
本题代码如下
public String reverseWords(String s) {
if (s == null) return s;
String[] strList = s.split(" ");
StringBuilder res = new StringBuilder();
for (int i = strList.length - 1; i >= 0; i--) {
if (!"".equals(strList[i])) {
res.append(strList[i]+" ");
}
}
return res.toString().trim();
}
复杂度分析:
时间复杂度 O(N) :各函数时间复杂度如下
空间复杂度 O(N) : 单词列表strList占用线性大小的额外空间。
思路分析
代码如下
public String reverseWords(String s) {
if (s == null) return s;
StringBuilder res = new StringBuilder();
int j = s.length()-1;
int i = j;
while (i >= 0) {
// 找单词尾
while (i >= 0 && s.charAt(i) == ‘ ‘) i--;
j = i;
// 找单词头
while (i >= 0 && s.charAt(i)!=‘ ‘) i--;
res.append(s.substring(i + 1, j+1)+‘ ‘); // 左闭右开
}
return res.toString().trim();
}
复杂度分析
标签:alt 空字符串 声明 技术 trim loading 翻转单词 int return
原文地址:https://www.cnblogs.com/duduwy/p/13390546.html