分析
-
本题的考点:字符串。
-
从右向左遍历,过滤掉刚开始的空格,然后计算最后一个单词的长度即可。
代码
- C++
class Solution {
public:
int lengthOfLastWord(string s) {
for (int i = s.size() - 1; i >= 0; i--) {
if (s[i] == ' ') continue;
int j = i;
while (j >= 0 && s[j] != ' ') j--;
return i - j;
}
return 0;
}
};
- Java
class Solution {
public int lengthOfLastWord(String s) {
char[] cs = s.trim().toCharArray(); // trim()去除前后空格
int i = cs.length - 1, j = i;
while (j >= 0 && cs[j] != ' ') j--;
return i - j;
}
}
时空复杂度分析
-
时间复杂度:$O(n)$,
n
为s
长度。 -
空间复杂度:$O(1)$。