首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >力扣经典150题第十九题:最后一个单词的长度

力扣经典150题第十九题:最后一个单词的长度

作者头像
用户8589624
发布2025-11-13 15:44:37
发布2025-11-13 15:44:37
990
举报
文章被收录于专栏:nginxnginx

力扣经典150题第十九题:最后一个单词的长度

1. 题目描述

给你一个字符串 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 中至少存在一个单词

2. 解题思路

从字符串末尾开始向前遍历,找到最后一个单词的起始位置和结束位置,然后计算其长度。

3. 解题步骤
  1. 去除字符串末尾的空格,防止计算错误。
  2. 从字符串末尾开始向前遍历,直到找到第一个非空格字符,确定最后一个单词的结束位置。
  3. 继续向前遍历,直到找到第一个空格字符或到字符串的开头,确定最后一个单词的起始位置。
  4. 根据起始位置和结束位置计算最后一个单词的长度。
4. 代码实现
代码语言:javascript
复制
class Solution {
    public int lengthOfLastWord(String s) {
        // Trim trailing spaces
        s = s.trim();
        int length = 0;
        int i = s.length() - 1;
        
        // Find the end of the last word
        while (i >= 0 && s.charAt(i) != ' ') {
            length++;
            i--;
        }
        
        return length;
    }
}
5. 时间复杂度分析
  • 该算法的时间复杂度为 O(n),其中 n 是字符串 s 的长度。需要一次字符串的遍历来计算最后一个单词的长度。
6. 应用和扩展
  • 该算法可以用于计算字符串中最后一个单词的长度,通过从字符串末尾向前遍历来确定单词的起始和结束位置。
  • 可以应用于处理字符串相关的问题,特别是处理单词和空格分隔的情况。
7. 总结

本文介绍了如何计算字符串中最后一个单词的长度,通过从字符串末尾向前遍历来确定单词的起始和结束位置,然后计算单词的长度。

8. 参考资料
  • LeetCode 官网
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 力扣经典150题第十九题:最后一个单词的长度
    • 1. 题目描述
    • 2. 解题思路
    • 3. 解题步骤
    • 4. 代码实现
    • 5. 时间复杂度分析
    • 6. 应用和扩展
    • 7. 总结
    • 8. 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档