0%

58.最后一个单词的长度

倒序遍历

最后一个单词前面可能有若干单词,后面也可能有空格,因此直接从前往后找不如从后往前找更直接。

先从字符串末尾开始跳过所有空格,找到最后一个单词的结尾位置;再继续向左遍历,直到遇到空格或到达字符串开头,此时这段区间的长度就是最后一个单词的长度。

时间复杂度 $O(n)$

空间复杂度 $O(1)$

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution {
public int lengthOfLastWord(String s) {
int i = s.length() - 1;
while (s.charAt(i) == ' ') {
i--;
}
int last = i;
while (i >= 0 && s.charAt(i) != ' ') {
i--;
}
return last - i;
}
}