欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Leetcode算法——58、最后单词的长度(length of last word)

程序员文章站 2022-03-11 14:53:37
...

给定一个字符串,包含大小写字母和空格。返回字符串中最后一个单词的长度。

如果最后一个单词不存在,返回0。

备注:
一个单词定义为不包含空格的字符序列。

示例:

Input: "Hello World"
Output: 5

思路

从后向前,寻找到第一个出现的非空格。

然后继续向前,寻找到第一个出现的空格。

两者之间的单词即为最后一个单词。

比如输入 “Hello World”,从后向前,第一个出现的非空格为 ‘d’,然后继续向前,第一个出现的空格为 ‘W’ 左边的空格。

那么两者之间的 ‘World’ 即为最后一个单词。

注意:
1、考虑都是空格的情况,这时候单词长度为0
2、考虑都是非空格的情况,这时候单词长度为整体长度。

python实现

def lengthOfLastWord(s):
    """
    :type s: str
    :rtype: int
    """
    for i in range(len(s)-1, -1, -1):
        if s[i] != ' ':
            break
    else: # 都是空格
        return 0
    
    for j in range(i, -1, -1):
        if s[j] == ' ':
            break
    else: # i之前都是字母
        return i+1
    return i-j

if '__main__' == __name__:
    s = "Hello World"
    print(lengthOfLastWord(s))