58. Length of Last Word Leetcode Python

Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the length of last word in the string.


If the last word does not exist, return 0.


Note: A word is defined as a character sequence consists of non-space characters only.


For example, 
Given s = "Hello World",

return 5.


第一种解法是直接遍历整个string 找到相应位置记下来,然后右边减去左边。

主要是集中edge case的判断比较繁琐一点。

代码如下:

这里代码有点问题,不知道为什么自己电脑上面可以过的case在oj上面过不了。

class Solution:
    # @param s, a string
    # @return an integer
    def lengthOfLastWord(self, s):
        if s=="":
            return 0
        left=0
        right=len(s)-1
        maxleft=0
        while right>0 and s[right]==' ':
            right-=1
            
        while left<right:
            if s[left]==' ' and s[left+1]!=' ':
                maxleft=max(maxleft,left)
            left+=1
        
        
        if maxleft==right and s[right]!=' ':
            result= 1
        elif maxleft==right and s[right]==' ':
            result= 0
            
        elif maxleft==0 and right>0:
            result= right-maxleft+1
        else:
            result= right-maxleft
        return result
            
            
            


第二种解法是python特有的:

直接利用split 把' '都拆开

class Solution:
    # @param s, a string
    # @return an integer
    def lengthOfLastWord(self, s):
        s=s.split()
        if not s:
            return 0
        else:
            return len(s[-1])




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值