欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > 58.最后一个单词的长度

58.最后一个单词的长度

2025/12/1 19:24:10 来源:https://blog.csdn.net/weixin_61695887/article/details/142797291  浏览:    关键词:58.最后一个单词的长度

目录

一、问题描述

二、解题思路

三、代码

四、复杂度分析


一、问题描述

给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。

二、解题思路

我们可以从字符串的 末尾向前遍历

  1. 跳过末尾的空格,因为末尾可能有很多多余空格。

  2. 开始计数字母个数,直到遇到第一个空格或字符串开头,说明找到了最后一个单词。

  3. 返回计数值即可。

三、代码

class Solution {
public:int lengthOfLastWord(string s) {int length = 0;                     //用于记录最后一个单词的长度int i = s.size() - 1;               //从字符串末尾开始向前遍历//第一步,跳过字符串末尾的空格while(i >= 0 && s[i] == ' '){--i;}//第二步,开始统计最后一个单词的长度while(i >= 0 && isalpha(s[i])){++length;                       //遇到字母就增加长度计数--i;                            //向前继续遍历}return length;                      //返回最后一个单词的长度}
};

四、说明

  • isalpha(c) 是 C++ 中判断字符是否为英文字母的函数;

  • 若字符串全为空格,或不包含单词,会返回 0(符合预期);

  • 时间复杂度:O(n),最多遍历一次字符串;

  • 空间复杂度:O(1),只用了常数空间。

版权声明:

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

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

热搜词