题目要求
解答1:暴力解决
class Solution(object): def lengthOfLastWord(self, s): """ :type s: str :rtype: int """ input_list = [i for i in s.split(" ") if i!="" ] return len(input_list[-1])
这种解决方式,简单粗暴,没有考虑题目的要求,下面做一下优化。
解答2:反向遍历
class Solution(object): def lengthOfLastWord(self, s): """ :type s: str :rtype: int """ # 统计长度 length=0 # 设置是否为空格的标志 is_space=False # 反向遍历 s for i in reversed(s): # 判读是否为字符 if i.isalpha(): length+=1 is_space=True # 若为空格 elif is_space: break return length
第二种方法,考虑了题目要求,因为是求的最后一个元素的长度,那就反向遍历,若字符遍历结束后遇到空格,就结束该循环,空间复杂度从O(N)->O(1)
标签:空格,遍历,space,length,单词,算法,反向,长度 From: https://www.cnblogs.com/TW-NLP/p/18318876