声明:
今天是第12道题。给定一个仅包含大小写字母和空格 ' '
的字符串,返回其最后一个单词的长度。以下所有代码经过楼主验证都能在LeetCode上执行成功,代码也是借鉴别人的,在文末会附上参考的博客链接,如果侵犯了博主的相关权益,请联系我删除
(手动比心ღ( ´・ᴗ・` ))
正文
题目:给定一个仅包含大小写字母和空格 ' '
的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。
示例:
输入: "Hello World" 输出: 5
说明:一个单词是指由字母组成,但不包含任何空格的字符串。
解法1。主要是利用Python字符串逆序输出,从最后1个字符开始以1为步长进行遍历,字符不为空就开始记录,直到遇到空字符就返回记录的字符串长度
class Solution:
def lengthOfLastWord(self, s):
"""
:type s: str
:rtype: int
"""
last_string = ''
len_lst_str = 0
# 从尾部开始遍历s,如果字符不为空,就把这个字符放在last_string里,
# 直到遇到空字符以且记录的last_string不为空就结束,返回记录好的最后1个字符串长度
for i in s[::-1]:
if last_string != '' and i == ' ': # 此处‘==’一定不能写成‘=’
return count
if i != ' ':
last_string += i
len_lst_str += 1
return len_lst_str
解法2。 比第一种解法更高效些,直接调用了Python的split函数将字符串切分(题干里说了,输入字符串只包含大小写字母和空格,默认空格就是分隔符),切分好后返回最后1个字符串的长度。
class Solution:
def lengthOfLastWord(self, s):
list_s = s.split() # 按空字符切分s
last_word = list_s[-1] # 将切分好的最后1个字符赋给last_word
return len(last_word) # 返回最后1个字符串的长度
解法3。遍历字符串的方法
class Solution:
def lengthOfLastWord(self, s):
"""
:type s: str
:rtype: int
"""
# s = s.rstrip()
if not s:
return 0
start = 0
end = 0
i = 0
while i < len(s):
while i<len(s) and s[i] == ' ':
i += 1
if i >= len(s):
break
start = i
while i<len(s) and s[i] != ' ':
i += 1
end = i
return end-start
结尾
解法1:https://blog.csdn.net/qq_34364995/article/details/80284286