LeetCode 58. 最后一个单词的长度
题目描述
思路分析
解法一:从后向前扫描(推荐)
核心思路:
- 从字符串末尾跳过空格,找到最后一个单词的结尾。
- 继续向前统计字符数量直到遇到空格或字符串开始。
- 统计值即为最后一个单词长度。
复杂度分析:
- 时间复杂度:O(n),其中 n 表示字符串长度。
- 空间复杂度:O(1),仅使用常数额外空间。
class Solution {
public int lengthOfLastWord(String s) {
int i = s.length() - 1;
// 跳过末尾空格
while (i >= 0 && s.charAt(i) == ' ') {
i--;
}
int len = 0;
while (i >= 0 && s.charAt(i) != ' ') {
len++;
i--;
}
return len;
}
}
func lengthOfLastWord(s string) int {
i := len(s) - 1
// 跳过末尾空格
for i >= 0 && s[i] == ' ' {
i--
}
length := 0
for i >= 0 && s[i] != ' ' {
length++
i--
}
return length
}
相似题目
| 题目 | 难度 | 考察点 |
|---|---|---|
| 151. 反转字符串里的单词 | 中等 | 字符串 |
| 434. 字符串中的单词数 | 简单 | 字符串 |
| 344. 反转字符串 | 简单 | 双指针 |
| 125. 验证回文串 | 简单 | 双指针 |
| 8. 字符串转换整数 (atoi) | 中等 | 字符串 |
本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0
许可协议,转载请注明出处!