美文网首页
2018-06-19 LeetCode58

2018-06-19 LeetCode58

作者: Betrayer丶 | 来源:发表于2018-06-19 09:30 被阅读0次

    沉寂了许久,才明白了一个道理:永远不要意气用事,永远不要一意孤行。

    题目描述

    给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。
    如果不存在最后一个单词,请返回 0 。
    说明:一个单词是指由字母组成,但不包含任何空格的字符串。
    示例:

    输入: "Hello World"
    输出: 5

    我的解法

    首先将字符串反序,然后遍历,在第一个空格处停止。注意原字符串末尾为0的特殊情况。

    class Solution:
        def lengthOfLastWord(self, s):
            sums=0
            s=s[::-1]
            for i in s:
                if i != ' ':
                    sums=sums+1
                elif sums != 0:
                    break
            return sums
    

    最优解法

    调用字符串内置函数,使用s.strip移除字符串首尾的0,使用s.rfind找到‘ ’最后一次出现的位置,即可计算。

    class Solution:
        def lengthOfLastWord(self, s):
            """
            :type s: str
            :rtype: int
            """
            s = s.strip(' ')
            # return len(s.split(' ')[-1])
            return len(s) - 1 - s.rfind(' ')
    

    相关文章

      网友评论

          本文标题:2018-06-19 LeetCode58

          本文链接:https://www.haomeiwen.com/subject/oyaoeftx.html