hello 大家好!今天开写一个新章节,每一天一道算法题。让我们一起来学习算法思维吧!
javascript
function lengthOfLastWord(s) {
// 初始化计数器,用于记录最后一个单词的长度
let length = 0;
// 从字符串的最后一个字符开始向前遍历
let i = s.length - 1;
// 跳过字符串末尾的所有空格
while (i >= 0 && s[i] === ' ') {
i--;
}
// 从第一个非空格字符开始,计算单词的长度
while (i >= 0 && s[i]!== ' ') {
length++;
i--;
}
return length;
}
// 测试示例
const s = "Hello World";
console.log(lengthOfLastWord(s));
代码解释
整体思路
为了计算字符串中最后一个单词的长度,我们可以从字符串的末尾开始向前遍历。首先,我们需要跳过字符串末尾可能存在的所有空格,然后开始计算从第一个非空格字符开始到下一个空格字符或者字符串开头的字符数量,这个数量就是最后一个单词的长度。
代码步骤分析
初始化变量:
- length:用于记录最后一个单词的长度,初始值为 0。
- i:用于记录当前遍历到的字符的索引,初始值为字符串的最后一个字符的索引 s.length - 1。
跳过末尾空格:
- 使用 while 循环,当 i 大于等于 0 且当前字符是空格时,将 i 减 1,从而跳过所有末尾的空格。
计算单词长度:
- 接着,再使用一个 while 循环,当 i 大于等于 0 且当前字符不是空格时,将 length 加 1,并将 i 减1,以此来计算最后一个单词的长度。
返回结果:
- 当循环结束后,length 中存储的就是最后一个单词的长度,将其返回。