跳到主要内容

Length of Last Word

描述

Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the length of last word in the string.

If the last word does not exist, return 0.

Note: A word is defined as a character sequence consists of non-space characters only.

For example, Given s = "Hello World", return 5.

分析

模拟。先从右到左找到第一个字母,然后从右到左找到第一个非字母,二者的距离就是最后一个 word 的长度。

代码

# Length of Last Word
# 偷懒,用 STL
# 时间复杂度O(n),空间复杂度O(1)
class Solution:
def lengthOfLastWord(self, s: str) -> int:
def isAlphabet(ch: str) -> bool:
return ch.isalpha()

def isNotAlphabet(ch: str) -> bool:
return not ch.isalpha()

def findIf(s: str, fromIndex: int, p) -> int:
for i in range(fromIndex, -1, -1):
if p(s[i]):
return i
return -1

j = findIf(s, len(s) - 1, isAlphabet)
i = findIf(s, j, isNotAlphabet)
return j - i