1. 程式人生 > >Leetcode演算法——58、最後單詞的長度(length of last word)

Leetcode演算法——58、最後單詞的長度(length of last word)

給定一個字串,包含大小寫字母和空格。返回字串中最後一個單詞的長度。

如果最後一個單詞不存在,返回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))