算法:求最后一个单词的长度

题目要求

 

解答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)

posted @ 2024-07-23 16:43  TW-NLP  阅读(2)  评论(0编辑  收藏  举报