最后一个单词的长度

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 中存储的就是最后一个单词的长度,将其返回。
相关推荐
人工智能训练1 小时前
【极速部署】Ubuntu24.04+CUDA13.0 玩转 VLLM 0.15.0:预编译 Wheel 包 GPU 版安装全攻略
运维·前端·人工智能·python·ai编程·cuda·vllm
会跑的葫芦怪2 小时前
若依Vue 项目多子路径配置
前端·javascript·vue.js
兩尛2 小时前
c++知识点2
开发语言·c++
fengfuyao9852 小时前
海浪PM谱及波形的Matlab仿真实现
开发语言·matlab
xiaoye-duck2 小时前
C++ string 底层原理深度解析 + 模拟实现(下)——面试 / 开发都适用
开发语言·c++·stl
xiaoqi9222 小时前
React Native鸿蒙跨平台如何进行狗狗领养中心,实现基于唯一标识的事件透传方式是移动端列表开发的通用规范
javascript·react native·react.js·ecmascript·harmonyos
jin1233223 小时前
React Native鸿蒙跨平台剧本杀组队消息与快捷入口组件,包含消息列表展示、快捷入口管理、快捷操作触发和消息详情预览四大核心功能
javascript·react native·react.js·ecmascript·harmonyos
Hx_Ma163 小时前
SpringMVC框架提供的转发和重定向
java·开发语言·servlet
期待のcode4 小时前
原子操作类LongAdder
java·开发语言
L_09074 小时前
【C++】高阶数据结构 -- 红黑树
数据结构·c++