前言
新的一年,好好学习。尝试用python写写代码。
正文
问题来源
本问题来自leetcode上的58题。
问题描述
给定一个仅包含大小写字母和空格 ‘ ‘ 的字符串,返回其最后一个单词的长度。
如果不存在最后一个单词,请返回 0 。
说明:一个单词是指由字母组成,但不包含任何空格的字符串。
示例 1:
输入: "Hello World"
输出: 5
分析:
class Solution(object):
def lengthOfLastWord(self, s):
"""
:type s: str
:rtype: int
"""
i = len(s) - 1
while i >= 0 and s[i] == ' ':
i -= 1
a = i
while i >= 0 and s[i] != ' ':
i -= 1
return a - i
首先获得最后一个字符串的起始终止位置,相减即可。形如”world “起始在下标0位置的,也满足。
别人的代码
class Solution(object):
def lengthOfLastWord(self, s):
"""
:type s: str
:rtype: int
"""
ss = s.split()
return len(ss[-1]) if ss else 0
如果不为空,返回len(ss[-1]);如果为空返回0.
总结:
勤思考。
python中没有&&判断符也没有–自减操作。数组下标可以为-1,代表最后一个元素。
结语
不管怎么样好好加油。