题意:
给出一个string,包含大小写字母和空格符。返回最后一个words的长度,如果不存在则返回0.
初步分析:先排除字符串为空的情况,这就代表有单词了,然后,分两种情况,一种是最后的单词后面什么都没有,一种是后面有空字符。从后往前遍历即可。然后最后的空格读完了(如果有的话)截取一个点,最后的单词读完了,再截取一个点,相减得到相对距离即可。
public class Solution {
public int lengthOfLastWord(String s) {
if(s == null) return 0;
int i = s.length()-1;
while(i>=0 && s.charAt(i) == ' ')
i--;
int j = i;
while(j>=0 && s.charAt(j) != ' ')
j--;
return i-j;
}
}
这个 lianglinMan的代码很棒:
public int lengthOfLastWord(String s) {
if(s == null) return 0;
int wordLen = 0;
for(int i = s.length() - 1; i>= 0; i--){
if(s.charAt(i) != ' '){
wordLen++;
}else if(wordLen > 0){
break;
}
}
return wordLen;
}