Python之split函数&字符串最后一个单词的长度
这是牛客一道字符串题
描述
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
输入描述:
输入一行,代表要计算的字符串,非空,长度小于5000。
输出描述:
输出一个整数,表示输入字符串最后一个单词的长度。
示例1
输入:
hello nowcoder
复制
输出:
8
复制
说明:
最后一个单词为nowcoder,长度为8
我的解法是由后往前遍历整个字符串,然后逐个判断他是否是空格,遇到空格停止,然后记录下他的下标,最后算出空格之后的字符串长度。但是可以就有个问题,如果只有一个单词没有空格呢,所以要加个判断,判断一个单词情况,也就是要考虑边界条件。这样代码才不会有奇怪的错。欢迎大佬对我的代码进行优化,因为我只是初步想法。
代码如下:
s = input()
a = 0
for i in range(len(s) - 1, 0, -1):
if s[i] == ' ':
j = (i + 1)
a = 1
break
# for i in range(j,len(s)-1):
# print(s[i])
if a == 1:
print(len(s) - i - 1)
else:
print(len(s))
牛客大佬解法内存占资源小
通过split函数以空格分割字符串,然后转成数组存起来,这样只要取数组下标最后一个,然后用len函数直接取长度就行。不过这样会比我的时间要久。因为他这个分割是从前往后逐个分割,取最后一个时间势必会久一些。
str = input()
arr = str.split(" ")
n = len(arr) - 1
print(len(arr[n]))
看了大佬的过程我就去了解了一下split函数
str.split(str=“”,num=string.count(str))[n]
- str: 表示为分隔符,默认为空格,但是不能为空(‘’)。若字符串中没有分隔符,则把整个字符串作为列表的一个元素
- num:表示分割次数。如果存在参数num,则仅分隔成 num+1 个子字符串,并且每一个子字符串可以赋给新的变量
- [n]:表示选取第n个分片
import sys
str = input()
arr = str.split(" ")
print(arr)
arr1 = str.split("g")
print(arr1)
从结果可以看出用什么做分割符他就会匹配该分割符进行分割并去掉该字符。