-
首先要审题,是求最后一个单词的length,而不是最长的单词的length。
-
string的最后可能会有空格,所以要用String的trim()方法去头去尾。
一个想法是再用String的split(" ")方法,再求最后一个单词的长度。缺点是空间开销大,时间也不见得快。
看到一个一行的方法是用了减法和String的indexOf(),空间和时间开销都不大。
public int lengthOfLastWord(String s) {
return s.trim().length()-s.trim().lastIndexOf(" ")-1;
}
- 因为字母个数有限,可以考虑用长度为26的数组记录每个字符出现的频率。
- 注意 java里char 'a' 对应的int 是97;
下面是英文字母的char和int互相转化。
char t = (char)(i + 97); //其中i是英文字母顺序,如a是0,c是2.
int i = t - 'a'; //其中t是字母的char形式,如'a','b'等.
网友评论