题解|#字符串最后一个单词的长度-python解法#

字符串最后一个单词的长度

https://www.nowcoder.com/practice/8c949ea5f36f422594b306a2300315da

字符串最后一个单词的长度
https://www.nowcoder.com/practice/8c949ea5f36f422594b306a2300315da

题目描述
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000
注:字符串末尾不以空格为结尾

输入描述
输入为整个字符串

输出描述
输出字符串最后一个单词的长度

示例
输入:hello nowcoder
输出:8

方法一:使用内置函数

使用python中字符串的内置函数strip()去除字符串首尾空格,使用split()按照空格将字符串切分成单词数组,找到最后一个单词并计算其长度

  1. 使用strip()去除首尾空格
  2. 使用split()将字符串切分成单词数组
  3. 计算数组最后一个单词长度

图解

时间复杂度分析: 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)

方法二 指针从数组尾部向数组头部移动,判断并计算移动距离

去除字符串首尾空格,设置指针,从数组的末尾向数组头部移动,直至遇到空格或者遇到数组首位元素,此时指针移动距离即最后一个单词的长度

  1. 去掉首尾空格
  2. 指针从数组末尾开始移动,判断
  • 若所指元素为空格则停止移动,输出指针移动距离
  • 若不为空格,则向前移动,移动距离加一

图解

时间复杂度分析: 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)
全部评论
楼主,方法1的代码的第二行打错了。word_list = input_str.strip().split()
6 回复 分享
发布于 2022-01-21 20:16
没有用数组的函数 应该是方法二的效率高一点吧
点赞 回复 分享
发布于 2022-11-30 23:41 陕西
range(len(input_str)-1, -1, -1) 这里stop写错了,0
点赞 回复 分享
发布于 2023-02-15 15:38 广东

相关推荐

Hello_WordN:咱就是说,除了生命其他都是小事,希望面试官平安,希望各位平时也多注意安全
点赞 评论 收藏
分享
52 15 评论
分享
牛客网
牛客企业服务