📌  相关文章
📜  字符串中最后一个单词的长度(1)

📅  最后修改于: 2023-12-03 15:09:21.382000             🧑  作者: Mango

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

在编程中,经常会需要获取字符串中最后一个单词的长度。下面提供一个简单的代码片段示例以及详细解释。

代码示例

以下是使用 Python 3 编写的代码示例:

def last_word_length(s: str) -> int:
    """
    获取字符串中最后一个单词的长度
    :param s: 字符串
    :return: 最后一个单词的长度,若无单词则返回 0
    """
    # 先删除字符串末尾的空格
    s = s.strip()
    # 从字符串末尾开始向前查找第一个空格
    for i in range(len(s) - 1, -1, -1):
        if s[i] == ' ':
            # 找到空格,返回最后一个单词的长度
            return len(s) - i - 1
    # 没有找到空格,说明字符串只有一个单词或无单词
    # 返回整个字符串的长度
    return len(s)
详细解释

该代码示例中定义了一个名为 last_word_length 的函数,该函数接受一个字符串参数 s,并返回字符串中最后一个单词的长度。

函数定义

函数定义开始的第一行使用了 Python 3 中的类型注解,指定了函数的参数类型和返回值类型。其中,s 参数的类型是 str,表示一个字符串;而返回值的类型是 int,表示一个整数。这样可以方便使用者调用函数时正确传递参数,并获取函数的返回值类型,提高代码的可读性和可维护性。

def last_word_length(s: str) -> int:
删除末尾空格

接下来的第一行代码使用了 Python 3 中的字符串方法 strip(),将字符串末尾的空格删除。这是为了避免在查找最后一个单词时受到末尾空格的影响。

s = s.strip()
从后向前查找空格

然后使用了 Python 3 中的 range() 函数,从字符串的末尾开始向前查找字符。其中,len(s) - 1 表示字符串末尾字符的下标,-1 表示每次循环递减 1,直到下标为 0。从而实现了从后向前查找的效果。

for i in range(len(s) - 1, -1, -1):
找到最后一个单词

在每次循环中,判断字符串中当前下标对应的字符是否为空格。如果是,则说明找到了最后一个单词的末尾;如果不是,则继续往前查找。

if s[i] == ' ':
返回最后一个单词的长度

如果找到了最后一个单词的末尾,就可以返回其长度。其中,len(s) - i - 1 表示字符串总长度减去最后一个单词的末尾下标再减去 1(因为下标从 0 开始计数),就是最后一个单词的长度。

return len(s) - i - 1
无单词的情况

如果在整个字符串中没有找到任何空格,就说明该字符串只有一个单词或无单词。此时可以直接返回整个字符串的长度。

return len(s)
总结

以上是一个简单的获取字符串中最后一个单词长度的代码示例。希望通过本文的介绍,可以帮助更多的程序员快速实现这一功能,并加深对代码中各种语法和细节的理解。