leetcode最后一个单词的长度

给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。

单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。

示例 1:

输入:s = "Hello World"
输出:5
解释:最后一个单词是“World”,长度为5。
示例 2:

输入:s = "   fly me   to   the moon  "
输出:4
解释:最后一个单词是“moon”,长度为4。
示例 3:

输入:s = "luffy is still joyboy"
输出:6
解释:最后一个单词是长度为6的“joyboy”。
 

提示:

1 <= s.length <= 104
s 仅有英文字母和空格 ' ' 组成
s 中至少存在一个单词

法一

class Solution(object):
    def lengthOfLastWord(self, s):
        """
        :type s: str
        :rtype: int
        """
        a=s.split(" ")
        for i in a[::-1]:
            if i!="":
                return len(i)
        

用chatgpt生成了代码解释,如下:
 

这段代码是Python语言的函数定义,用于计算一个字符串中最后一个单词的长度。具体解释如下:

  1. 定义了一个名为Solution的类,其中包含一个名为lengthOfLastWord的函数。

  2. 函数参数s指定了输入字符串,类型为str,表示待处理的字符串。

  3. 在函数内部,首先使用split方法将字符串按照空格分割为列表splitted,即形成了由各个单词组成的列表。

  4. 接着进行逆序遍历([::-1]),针对每个元素i,判断其是否为空字符串(if i!="")。

  5. 如果不为空,则说明该元素就是最后一个单词,返回其长度len(i).

  6. 如果整个遍历过程都没有找到非空单词,那么就返回0。

需要注意的是,该算法并未考虑特殊情况,例如字符串中包含多余空格字符、只有空格等情况,因此还需要根据实际应用场景对算法进行扩展和优化。

注意

在Python中,双引号("")和空格(" ")表示不同的含义。

双引号用于标识字符串(str)类型,即由一串字符组成的数据类型。字符串可以包含任意字符,例如数字、字母、特殊符号等,需要使用双引号或单引号将它们括起来,如:"hello", "world".

空格则是一个空白符号,用于在字符串中分隔不同的单词或字符。在Python中,空格通常被视为字符串中的一个普通字符,但也可以使用其他方式处理简单字符串分割、去除多余空格等操作,例如split()方法和strip()方法。

需要注意的是,Python解释器本身并不区分中英文引号,都可以作为定义字符串类型的选项,只要保证两端引号匹配即可。

法二、通俗易懂,注意把字符串变列表

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

这段代码是Python语言的一个类中的函数定义,实现计算给定字符串中最后一个单词长度的功能。具体解释如下:

  1. 定义了一个名为Solution的类,并在其中声明了一个名为lengthOfLastWord的函数,该函数需要传入字符串类型的参数s,并返回一个整数。

  2. 在函数内部,通过split()方法将字符串s按空格分割为列表s,即形成了以空格为分隔符的每个单词作为一个元素的列表。

  3. 使用len()函数获取列表s的长度n。

  4. 由于需要计算最后一个单词的长度,因此直接使用s[n-1]获取列表最后一个元素,并再次使用len()函数计算其长度。

  5. 将最后一个单词的长度作为函数的返回值。

需要注意的是,该算法并没有去除字符串末尾的多余空格、特殊字符等,对于输入字符串仅当其中只包含单词及空格时才能正确得到最后一个单词的长度,因此还需要根据实际应用场景对算法进行扩展和优化。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值