【LeetCode 简单题】12-最后一个单词的长度

声明:

今天是第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

解法2:https://www.jianshu.com/p/f0dbe3d17f66

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值