You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python中不使用字符串方法计算字符串最后一个单词长度的问题及解决方案

解决字符串末尾带空格时最后一个单词长度的计算问题

嘿,你的思路其实已经很对了,只是没处理字符串末尾存在空格的情况!咱们来一步步修正这个问题:

原代码的问题分析

当字符串末尾有空格(比如"Hello how are you ")时,你反转遍历的第一个字符就是空格,这时候直接触发break,导致last_word是空字符串,最终输出长度0,显然不符合预期——我们需要先跳过末尾所有的空格,再开始统计最后一个单词的长度。

优化后的代码实现

其实不用拼接字符串,直接计数效率更高,而且逻辑更清晰:

string = "Hello how are you "
last_word_length = 0

# 从字符串末尾往前遍历
for char in reversed(string):
    if char == ' ':
        # 如果还没开始统计单词,就继续跳过空格
        if last_word_length == 0:
            continue
        # 已经在统计单词时遇到空格,说明单词结束了,停止遍历
        else:
            break
    else:
        # 遇到非空格字符,计数加1
        last_word_length += 1

print(last_word_length)  # 输出:3

逻辑说明

  1. 初始化last_word_length为0,用来记录最后一个单词的长度。
  2. 从字符串的最后一个字符开始反向遍历:
    • 如果当前字符是空格,且还没开始统计单词(长度为0),就继续跳过,直到找到第一个非空格字符。
    • 一旦遇到非空格字符,就开始累加长度。
    • 当累加过程中再次遇到空格,说明已经遍历完最后一个单词,直接跳出循环。
  3. 最后输出的last_word_length就是正确的最后一个单词长度。

这个方法完全不需要使用任何字符串方法,完美符合你的需求,不管末尾有多少个空格都能正确处理~

内容的提问来源于stack exchange,提问作者Hemant Sah

火山引擎 最新活动