欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > LeetCode面试150——58最后一个单词的长度

LeetCode面试150——58最后一个单词的长度

2025/9/18 3:09:24 来源:https://blog.csdn.net/Junmo12345/article/details/140988874  浏览:    关键词:LeetCode面试150——58最后一个单词的长度

题目难度:简单

默认优化目标:最小化平均时间复杂度。

Python默认为Python3。

目录

1 题目描述

2 题目解析

3 算法原理及代码实现

3.1 反向遍历

参考文献


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 题目解析

输入是一个字符串s,输出是最后一个单词的长度lengths是一句句子,英文单词之间用空格分开。既然是求最后一个单词的长度,从后往前找比从前往后找更快。

3 算法原理及代码实现

3.1 反向遍历

我们在s中从后往前遍历,第一个字符就是最后一个单词的最后一个字符。然后向前,直到遇到空格或者到达s的首位置。遍历到的字符个数即为length

平均时间复杂度O(n),平均空间复杂度O(1)。

C++代码实现

class Solution {
public:int lengthOfLastWord(string s) {int n=s.size()-1;int length=0;
​while(s[n]==' '){n--;}
​while(n>=0 && s[n]!=' '){n--;length++;}
​return length;
​}
};

Python代码实现

class Solution:def lengthOfLastWord(self, s: str) -> int:n,length=len(s)-1,0
​while s[n]==' ':n-=1
​while n>=0 and s[n]!=' ':n-=1length+=1
​return length

参考文献

力扣面试经典150题

力扣官方题解

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词