
思路分析
-
初始化变量:
num用于记录当前单词的长度。before用于记录上一个单词的长度。
-
遍历字符串:
- 如果字符不是空格,增加
num计数。 - 如果字符是空格,检查
num是否为 0:- 如果
num为 0,说明之前没有记录到单词,所以before保持不变。 - 如果
num不为 0,更新before为num,并将num置为 0。
- 如果
- 如果字符不是空格,增加
-
返回结果:
- 在遍历结束后,检查
num是否为 0:- 如果
num为 0,说明最后一个字符是空格,返回before(上一个单词的长度)。 - 如果
num不为 0,返回num(最后一个单词的长度)。
- 如果
- 在遍历结束后,检查
class Solution {
public:
int lengthOfLastWord(string s) {
// 用于记录当前单词的长度
int num = 0;
// 用于记录上一个单词的长度
int before = 0;
// 遍历整个字符串
for (int i = 0; i < s.size(); i++) {
// 如果当前字符不是空格,增加当前单词的长度
if (s[i] != ' ') {
num++;
} else {
// 如果当前字符是空格,检查当前单词的长度是否为 0
if (num != 0) {
// 如果当前单词的长度不为 0,更新上一个单词的长度
before = num;
// 将当前单词的长度重置为 0
num = 0;
}
// 如果当前单词的长度为 0,不更新上一个单词的长度
}
}
// 返回最后一个单词的长度
// 如果最后一个字符是空格,返回上一个单词的长度
// 如果最后一个字符不是空格,返回当前单词的长度
return num == 0 ? before : num;
}
};


















