leetcode58最后一个单词的长度

leetcode58 Length of Last Word

Posted by BY on March 19, 2019

前言

新的一年,好好学习。尝试用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,代表最后一个元素。

结语

不管怎么样好好加油。