58. 最后一个单词的长度
一、问题描述
二、算法思想
1、利用列表中自带的方法解决。
(1)strip()方法去掉字符串前后的空格。
(2)split(’ ')方法以空格为分隔符,将字符串分割成由单词和空格组成的部分(因为单词之间不一定只有一个空格,所以分割后单词里面可能还有空格),存在 list1里。
(3)获取list1里最后一个元素,存在str1里面,再用strip()方法去掉其前后的空格,最后再查看str1的长度,将长度返回。
2、使用while和if语句进行逻辑判断解决。
(1)设置length等于0,a等于1,s[-a]获取字符串s中的最后一个字符。
(2)判断最后一个是否为空格,若不等于空格length加一。
(3)若等于空格,判断length是否为0,不为0说明已经把最后一个单词查完了,返回length;若为0,a = a +1,s[-a]表示倒数第a个元素,就这样从后往前查找字符的值,直到查找完最后一个单词的长度。
三、代码
class Solution(object):
def lengthOfLastWord(self, s):
"""
:type s: str
:rtype: int
"""
"""
sum1 = 0 # " fly me to the moon "
s = s.strip() # 去掉字符串前后的空格
list1 = s.split(' ') #
length = len(list1)
str1 = list1[length-1]
str1= str1.strip() # 单词间可能多个空格,导致分割后单词里还有空格,再去一次
sum1 = len(str1)
return sum1
"""
length=0
a=1
while a<=len(s):
if s[-a]!=' ':
length+=1
else:
if length!=0:
return length
a+=1