LeetCode(python3) #58 最后一个单词的长度

#58 最后一个单词的长度解法

一.解题思路

思路1:用Python内置函数通过空格分割字符串为列表,然后取出最后一个元素求出长度即可。

思路2:参考了一下题解,通过双指针逆序循环找字符串的方式。

注意:需要注意的是传入字符串可能全是空格或者直接为空。

二.代码展示

# 内置函数题解
class Solution:
    def lengthOfLastWord(self, s):
        # 工具空格字符串分割(例如:hello world => ['hello','world])
        s_list = s.split()
        # 列表长度
        s_list_len = len(s_list)
        # 排除空列表
        if s_list_len == 0:
            return 0
        # 返回列表最后一个元素的长度
        return len(s_list[s_list_len-1])
# 逆序双指针题解
class Solution:
    def lengthOfLastWord2(self, s):
        # 去除末尾空格
        s = s.rstrip()
        # 记录指逆序针位置(end不用动,因为已经去除了空格)
        start = end = len(s) - 1
        # 字符串从右到左判断,直到字符串为空格或到头了就退出
        while start >= 0 and s[start] != ' ':
            start -= 1
        # 字符串长度就是末尾减去start指针的位置
        return end - start

三.总结其他

总结:这题比较简单,没有涉及到难以理解的东西在里面,算是正规的简答题了。

优化:总感觉还有别的办法能做出来,但是就没思路,后续如果有想法了,再来升级一下。

交流:如果有什么建议或者疑问可以在文章下面回复哈,期待交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值