python计算单词长度_leetcode Python算法题(18)------最后一个单词的长度

题目重现:day018

其实这道题挺简单的,我的思考历程先是准备慢慢遍历到最后一个。后面我觉得不如直接倒叙开始做,把空格的地方替换成0,然后倒着判断不是零的元素。

class Solution:

def lengthOfLastWord(self, s):

if not s: return 0

res = ''

for char in s.replace(' ', '0')[::-1]:

if char != '0':

res += char

elif res and char == '0':

break

return len(res)

这是我第一个版本的代码,当char不是零的时候开始记录,到再次为零的时候break跳出。战胜了95%用户,后面想了想其实不用先替换,直接用‘  ’判断。

def lengthOfLastWord(self, s):

if not s: return 0

res = ''

for char in s[::-1]:

if char != ' ':

res += char

elif res and char == ' ':

break

return len(res)

这次的代码只战胜了百分之65.

在评论区学习到了strip和split函数,s.strip(rm) 可以删除s字符串中开头、结尾处,位于 rm删除序列的字符,也可以空着用来删除空格。split()可以用来分隔字符串,可以通过()内的参数指定字符。

所以我交了第一个版本:

class Solution:

def lengthOfLastWord(self, s: str) -> int:

if not s:

return 0

wordlist = s.split()

# strip()可以删除开头和结尾的空格

# split()分割字符串

return len(wordlist[-1])

这样会在输入是‘  ’发生错误,此时的wordlist里面没有参数。这句如果改成wordlist = s.split(' ')

当输入为‘a   ’,a之后有空格,那么wordlist[-1]是一个空字符串,长度为零。如果改成wordlist = s.strip().split()这样在输入为‘   ’空格时仍旧发生错误,此时的wordlist里面没有参数。最后改成了wordlist = s.strip().split(' ')结果正确。

wordlist = s.split(' ')时候wordlist里面是[' ',' ']两个

wordlist = s.strip.split(' ')时候wordlist里面是[' ']一个

打卡day018

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值