二刷
还是一万个bug
然后直接抄答案了
53.30 %
public class Solution {
public String reverseWords(String s) {
String[] strs = s.trim().split("\\s+");
StringBuilder sb = new StringBuilder();
for (int i = strs.length - 1; i > 0; i--) {
sb.append(strs[i]).append(" ");
}
return sb.append(strs[0]).toString();
}
}
一刷
很简单的一道题竟然debug了二十多分钟
有一个坑就是split这个函数
如果输入是 “ 1”的话 split之后会变成 String[] array = {"", "1"}
所以!!要先check这里是否存在长度为0的String"",而且因为是String所以必须用.equals
本来说用2pointers但是其实可以更简单 直接倒着循环一遍就可以了
关键是""这个坑
public class Solution {
public String reverseWords(String s) {
if (s == null || s.length() == 0) return s;
String[] array = s.split(" ");
StringBuilder sb = new StringBuilder();
for (int i = array.length - 1; i >= 0; i--) {
if (!array[i].equals("")) {
sb.append(array[i]).append(" ");
}
}
return sb.length() == 0 ? "" : sb.substring(0, sb.length() - 1);
}
}
No comments:
Post a Comment