leetcode-58 length-of-last-word(最後一個單詞的長度)
阿新 • • 發佈:2018-11-23
這道題讓我和難受,我的程式碼醜陋不說,還沒有通過。先看一下題目描述:
從題目描述看確實很簡單,先看一下我的程式碼:
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;。只不過要去掉開頭和結尾的空格。