leetcode-58 length-of-last-word(最后一个单词的长度)

这道题让我和难受,我的代码丑陋不说,还没有通过。先看一下题目描述:

从题目描述看确实很简单,先看一下我的代码:

 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;。只不过要去掉开头和结尾的空格。

猜你喜欢

转载自www.cnblogs.com/qingshan0216/p/10008507.html