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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/HappyRocking/article/details/84986283

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

如果最后一个单词不存在,返回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))

猜你喜欢

转载自blog.csdn.net/HappyRocking/article/details/84986283