idea做网站登录,网络推广软件赚钱,百度小说排行榜总榜,wordpress审核插件题目难度#xff1a;简单
默认优化目标#xff1a;最小化平均时间复杂度。
Python默认为Python3。 目录
1 题目描述
2 题目解析
3 算法原理及代码实现
3.1 反向遍历
参考文献 1 题目描述
给你一个字符串 s#xff0c;由若干单词组成#xff0c;单词前后用一些空格字…题目难度简单
默认优化目标最小化平均时间复杂度。
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输出是最后一个单词的长度length。s是一句句子英文单词之间用空格分开。既然是求最后一个单词的长度从后往前找比从前往后找更快。 3 算法原理及代码实现
3.1 反向遍历
我们在s中从后往前遍历第一个字符就是最后一个单词的最后一个字符。然后向前直到遇到空格或者到达s的首位置。遍历到的字符个数即为length。
平均时间复杂度O(n)平均空间复杂度O(1)。
C代码实现
class Solution {
public:int lengthOfLastWord(string s) {int ns.size()-1;int length0;
while(s[n] ){n--;}
while(n0 s[n]! ){n--;length;}
return length;
}
};
Python代码实现
class Solution:def lengthOfLastWord(self, s: str) - int:n,lengthlen(s)-1,0
while s[n] :n-1
while n0 and s[n]! :n-1length1
return length 参考文献
力扣面试经典150题
力扣官方题解