1. 程式人生 > >leetcode-58 length-of-last-word(最後一個單詞的長度)

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;。只不過要去掉開頭和結尾的空格。