LeetCode每日一题--最后一个单词的长度
2020-03-15 18:21
357 查看
【前言】坚持日更LeetCode刷题系列
不积跬步,无以至千里;不积小流,无以成江海。愿与诸君共勉!
【题目】58.最后一个单词的长度
题目描述:给定一个仅包含大小写字母和空格
' '的字符串
s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。
如果不存在最后一个单词,请返回 0 。
说明:一个单词是指仅由字母组成、不包含任何空格字符的最大子字符串。
示例:
示例 1: 输入: "Hello World" 输出: 5
思路一:将字符串转化为列表,将尾部的空格去除后,依然从尾部开始遍历,如果遇到非空格则跳过,遇到空格则跳出,并记录下该空格的index,对其处理之后即可得到最后一个单词的长度。具体代码如下:
class Solution(object): def lengthOfLastWord(self, s): """ :type s: str :rtype: int """ list_s = list(s) list_s2 = list_s[:] #用于保存去除尾部空格后的列表 for i in range(len(list_s)-1,-1,-1):#去除尾部空格 if list_s[i] != ' ': break else: list_s2.pop(i) index = len(list_s2)+1 #将index这样定义可用于判断index是否发生变化 for i in range(len(list_s2)-1,-1,-1): if list_s2[i] != ' ': #如果不是空格则继续循环 continue else: #遇到空格,则记录下index,并跳出循环 index = i break if index == len(list_s2)+1: #如果index未发生变化 return len(list_s2) else: #index发生变化 return len(list_s2)-index-1
运行结果:
关于其中一些知识的链接:
思路二:将字符串转化为列表,调用列表中的方法即可解决。例:通过count方法得到空格的个数,再通过index结合pop方法得到空格的索引值,最后一次index操作,即为最后一个空格所在的位置,之后易得最后一个单词的长度,不过此方法同样需要将右边的空格去除。
如果不想去除右边空格的话,可以通过切片的方法,利用每两个空格间即为一个单词,得到最后一个不为0长度的列表即为解,注意为空的情况即可。
思路三:调用字符串的方法即可解决。例:通过rstrip函数将右端的空格去除后,再利用split函数将其分割成多个单词,即可得解。
分享就到这里了,欢迎大家一起交流讨论。
注明:
题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/length-of-last-word
- 点赞 2
- 收藏
- 分享
- 文章举报
相关文章推荐
- (LeetCode每日一刷14)最后一个单词的长度
- Length of Last Word (最后一个单词的长度) 【leetcode】
- leetcode:求最后一个单词长度
- leetcode 58. 最后一个单词的长度
- LeetCode第58题:最后一个单词的长度
- 【LeetCode】- Length of Last Word(最后一个单词的长度)
- leetcode 58. Length of Last Word(C语言,计算最后一个单词的长度)19
- (LeetCode)Length of Last Word --- 最后一个单词的长度
- leetcode_58. Length of Last Word 字符串最后一个单词的长度,字符串分词
- LeetCode--Length of Last Word (计算最后一个单词的长度)Python
- [LeetCode] Length of Last Word - 最后一个单词的长度
- Java&LeetCode 初入门——058. 最后一个单词的长度
- LeetCode Length of Last Word(最后一个单词的长度)
- Leetcode最后一个单词的长度算法与分析
- leetcode:Length of Last Word最后一个单词的长度
- 【LeetCode】58. 最后一个单词的长度
- Leetcode(58)最后一个单词的长度
- [leetcode]Length of Last Word (求最后一个单词的长度 C语言实现)
- Python LeetCode(58.最后一个单词的长度)
- Leetcode 58. 最后一个单词的长度