题解|#字符串最后一个单词的长度-python解法#
字符串最后一个单词的长度
https://www.nowcoder.com/practice/8c949ea5f36f422594b306a2300315da
字符串最后一个单词的长度
https://www.nowcoder.com/practice/8c949ea5f36f422594b306a2300315da
题目描述
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000
注:字符串末尾不以空格为结尾
输入描述
输入为整个字符串
输出描述
输出字符串最后一个单词的长度
示例
输入:hello nowcoder
输出:8
方法一:使用内置函数
使用python中字符串的内置函数strip()去除字符串首尾空格,使用split()按照空格将字符串切分成单词数组,找到最后一个单词并计算其长度
- 使用strip()去除首尾空格
- 使用split()将字符串切分成单词数组
- 计算数组最后一个单词长度
图解
时间复杂度分析: O(n)
空间复杂度分析: O(n)
代码
input_str = input()
word_list = input.str().strip().split()
last_word = word_list[-1]
last_word_len = len(last_word)
print(last_word_len)
方法二 指针从数组尾部向数组头部移动,判断并计算移动距离
去除字符串首尾空格,设置指针,从数组的末尾向数组头部移动,直至遇到空格或者遇到数组首位元素,此时指针移动距离即最后一个单词的长度
- 去掉首尾空格
- 指针从数组末尾开始移动,判断
- 若所指元素为空格则停止移动,输出指针移动距离
- 若不为空格,则向前移动,移动距离加一
图解
时间复杂度分析: O(n)
空间复杂度分析: O(1)
代码
input_str = input().strip()
dis = 0
for i in range(len(input_str)-1, -1, -1):
if input_str[i] == ' ':
break
dis += 1
print(dis)