题目分析
- 题目给出我们一个字符串,其中包含空格字符,含义大多是一句话
- 我们要返回这一句话最后一个单词的长度,即以空格为分界的最后一个子字符串的长度
本题我们使用python语言来解决
方法一:使用split()
直接返回长度
- 调用分割方法
-
我们可以直接调用
split()
函数分割含有空格的字符串 -
得到的列表最后一个元素即子字符串
-
最终返回其长度即可
-
import sys
### 读取输入数据部分 ###
for line in sys.stdin:
a = line.split()
### 读取输入数据部分 ###
print(len(a[-1])) # 打印分割后最后一个子字符串的长度即可
复杂度分析
- 时间复杂度:,只要打印出最后的长度即可,但是调用split()函数复杂度为
- 空间复杂度:,未引入额外的空间
方法二:逐位遍历找空格
- 遍历
-
我们从后往前进行遍历
-
标记找到第一个空格字符就停止循环
-
最终通过索引差来获得结果
-
import sys
### 读取输入数据部分 ###
s = ""
for line in sys.stdin:
s = line
### 读取输入数据部分 ###
pos = -1 # 标记一个待寻找的空白字符位置
for i in range(len(s) -1, -1, -1): # 对输入字符串进行倒序遍历
if s[i] == ' ': # 如果遇到空格则标记空格位置,并退出循环
pos = i
break
print(len(s) - pos - 2) # 打印最终的最后一个字符串的长度
复杂度分析
- 时间复杂度:,遍历的时间代价为
- 空间复杂度:,未引入额外的空间占用