解答
分两类判断:
第一类的末位不是空格,这样找最后一个空格的位置,用字符串长度减去空格位置即可;
第二类的末位是空格,去掉末尾的空格后按第一类判断。
法1.直接使用库函数s.rstrip()去掉尾端空格,再用.split()将字符串中间的空格当成分隔符切分,找到尾值的长度
def lengthOfLastWord(self, s: str) -> int:
return len(s.rstrip().split(" ")[-1])
string.strip(): 用来去除字符串头尾字符、空白符(包括\n、\r、\t、' ',即:换行、回车、制表符、空格)
string.lstrip():用来去除字符串开头字符、空白符(包括\n、\r、\t、' ',即:换行、回车、制表符、空格)
string.rstrip():用来去除字符串结尾字符、空白符(包括\n、\r、\t、' ',即:换行、回车、制表符、空格)
string.strip()默认去除空格,若要去除其他字符,在括号里添加要去除的字符,记得加上‘’。
法2.按顺序提取每个单词到新的列表中,求长度,如果遇到空格,则清空列表,最后列表中留下的就是最后一个单词。
即使末位是空格,也能够保留最后一个单词的长度。
def lengthOfLastWord(s):
n = len(s)
oneword = []
if not n or s.isspace() == True:
return 0
i = 0
for i in range(n):
if s[i] != ' ':
oneword.append(s[i])
last_word = len(oneword)
else:
oneword = []
return last_word