字符串最后一个单词的长度
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)