题目描述
题目分析
- 简单来说,就是找出字符串的最后一个单词的长度,字符串使用空格作为分隔符
- 换一个角度,如果说找出字符串第一个单词的长度,也许很多人就知道怎么解了:从第一个非空格的字符串开始计算,直到遇到第一个空格为止
- 那么最后一个单词的长度,其实就是从尾部开始的第一个单词的长度,就可以使用
尾部遍历法
解法分析
- 从尾部开始遍历,如果当前字符不是空格,计数器加一;如果是空格,并且count 不为0
(表示已经为一个单词计数过,且碰到了第一个空格)
,就直接返回计数器的值
代码
class Solution {
public int lengthOfLastWord(String s) {
if (s.length() == 0) return 0;
int end = s.length()-1;
// 计数器
int count = 0;
// 尾部遍历,要包括 i=0
for(int i = end;i>=0;i--){
// 如果不是空格
if (s.charAt(i) != ' '){
count++;
} else {
// 如果是空格,判断count是否大于0,大于0表示已经计数过了,小于0就还没有开始计数
if (count > 0) {
// 直接返回结果
return count;
}
}
}
// 如果遍历完字符串还没有遇到空格,就直接返回计数器值
return count;
}
}