【Leetcode】最后一个单词的长度

给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。

单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。

示例 1:

复制代码
输入:s = "Hello World"
输出:5
解释:最后一个单词是“World”,长度为 5。

示例 2:

复制代码
输入:s = "   fly me   to   the moon  "
输出:4
解释:最后一个单词是“moon”,长度为 4。

示例 3:

复制代码
输入:s = "luffy is still joyboy"
输出:6
解释:最后一个单词是长度为 6 的“joyboy”。

提示:

  • 1 <= s.length <= 104
  • s 仅有英文字母和空格 ' ' 组成
  • s 中至少存在一个单词

思路:

通过遍历字符串,找到最后一个单词的起始位置和结束位置,然后计算长度来解决。

代码:

python 复制代码
def length_of_last_word(s):
    # 从字符串的末尾开始遍历,直到找到非空格字符
    end = len(s) - 1
    while end >= 0 and s[end] == ' ':
        end -= 1
    
    # 从找到的非空格字符开始向前遍历,直到遇到空格或字符串开始
    start = end
    while start >= 0 and s[start] != ' ':
        start -= 1
    
    # 计算最后一个单词的长度
    return end - start

# 示例
s1 = "Hello World"
print(length_of_last_word(s1))  # 输出: 5

s2 = "   fly me   to   the moon  "
print(length_of_last_word(s2))  # 输出: 4

s3 = "luffy is still joyboy"
print(length_of_last_word(s3))  # 输出: 6
相关推荐
iAkuya几秒前
(leetcode)力扣100 45二叉树的右视图(dfs,bfs)
leetcode·深度优先·宽度优先
tobias.b2 分钟前
408真题解析-2009-41-数据结构-最短路径
数据结构·算法·计算机考研·408考研·408真题解析
王老师青少年编程3 分钟前
2024年9月GESP真题及题解(C++七级): 矩阵移动
c++·算法·题解·真题·gesp·七级·矩阵移动
棒棒的皮皮10 分钟前
【深度学习】YOLO 进阶提升之算法改进(新型骨干网络 / 特征融合方法 / 损失函数设计)
深度学习·算法·yolo·计算机视觉
星火开发设计14 分钟前
循环结构进阶:while 与 do-while 循环的适用场景
java·开发语言·数据结构·学习·知识·循环
pas13615 分钟前
33-mini-vue 更新element的children-双端对比diff算法
javascript·vue.js·算法
三块可乐两块冰18 分钟前
【第二十六周】机器学习笔记二十七
算法·机器学习·支持向量机
源代码•宸19 分钟前
大厂技术岗面试之一面(准备自我介绍、反问)
经验分享·后端·算法·面试·职场和发展·golang·反问
s090713620 分钟前
FPGA视频编码器:H.264/H.265实现核心技术解析
图像处理·算法·fpga开发·音视频·h.264
闪电麦坤951 小时前
Leecode热题100:缺失的第一个正数(数组)
数据结构·算法·leetcode