题目内容:
计算字符串最后一个单词的长度,单词以空格隔开。
输入格式:
一行字符串,非空,长度小于5000。
输出格式:
整数N,最后一个单词的长度。
输入样例:
hello world
输出样例:
5
#解法1:
s = str(input())
j = 0
for i in s:
if i!=' ':
j+= 1
else:
j = 0
print(j)
#解法2:
s = str(input())
j = 0
for i in s[-1::-1]:
if i!=' ':
j+= 1
else:
break
print(j)
在解法二中,我们利用字符串的索引与切片(s[-1::-1]),从字符串的最后一个字母往前遍历,当遇到空格时退出循环,否则j递增,这样就很容易计算出最后的单词的长度。而解法一是从前往后遍历,明显花费更多的时间。
注意:下面有一个错误写法:
s=str(input())
j=0
for i in s[-1::-1]:
if i is not ' ':
j+=1
if i is ' ':
break
print(j)
此解法的错误在于没有区分 is、is not(身份运算符)与=、!=(关系运算符)的区别,is和is not判断的是两个标识符是否引用自一个对象,即判断两个对象的存储地址是否相同,而=和!=则判断两个对象的值是否相等,不能混用。