这道题让我和难受,我的代码丑陋不说,还没有通过。先看一下题目描述:
从题目描述看确实很简单,先看一下我的代码:
1 public static int lengthOfLastWord(String s) {
2 if (s.length() == 0) {
3 return 0;
4 }
5
6 if (s.lastIndexOf(" ") == s.length() - 1 && s.lastIndexOf(" ") != 0) {
7 return s.length() - 1;
8
9 }
10
11 return s.length() - s.lastIndexOf(" ") - 1;
12 }
13
14 }
我的代码有一种情况过不去,就是" "有数个空格组成的字符串,再来看一个正确的代码:
public int lengthOfLastWord(String s) {
return s.trim().length()-s.trim().lastIndexOf(" ")-1;
}
就一行,但是包括了所有情况。其实可以看出和我最后一行的return只多了一个trim方法,而我的第二个if判断也是为了去掉开头的空格,所以这样想就好理解了,核心思路就是s.length-s.lastIndexOf(" ") -1;。只不过要去掉开头和结尾的空格。