首先要審題,是求最后一個單詞的length,而不是最長的單詞的length。
-
string的最后可能會有空格,所以要用String的trim()方法去頭去尾。
一個想法是再用String的split(" ")方法,再求最后一個單詞的長度。缺點是空間開銷大,時間也不見得快。
看到一個一行的方法是用了減法和String的indexOf(),空間和時間開銷都不大。
public int lengthOfLastWord(String s) {
return s.trim().length()-s.trim().lastIndexOf(" ")-1;
}
- 因為字母個數(shù)有限,可以考慮用長度為26的數(shù)組記錄每個字符出現(xiàn)的頻率。
- 注意 java里char 'a' 對應的int 是97;
下面是英文字母的char和int互相轉(zhuǎn)化。
char t = (char)(i + 97); //其中i是英文字母順序,如a是0,c是2.
int i = t - 'a'; //其中t是字母的char形式,如'a','b'等.