给你一个字符串 s
,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
示例 1:
输入:s = "Hello World" 输出:5 解释:最后一个单词是“World”,长度为 5。
示例 2:
输入:s = " fly me to the moon " 输出:4 解释:最后一个单词是“moon”,长度为 4。
示例 3:
输入:s = "luffy is still joyboy" 输出:6 解释:最后一个单词是长度为 6 的“joyboy”。
提示:
1 <= s.length <= 104
s
仅有英文字母和空格' '
组成s
中至少存在一个单词
思路:
通过遍历字符串,找到最后一个单词的起始位置和结束位置,然后计算长度来解决。
代码:
python
def length_of_last_word(s):
# 从字符串的末尾开始遍历,直到找到非空格字符
end = len(s) - 1
while end >= 0 and s[end] == ' ':
end -= 1
# 从找到的非空格字符开始向前遍历,直到遇到空格或字符串开始
start = end
while start >= 0 and s[start] != ' ':
start -= 1
# 计算最后一个单词的长度
return end - start
# 示例
s1 = "Hello World"
print(length_of_last_word(s1)) # 输出: 5
s2 = " fly me to the moon "
print(length_of_last_word(s2)) # 输出: 4
s3 = "luffy is still joyboy"
print(length_of_last_word(s3)) # 输出: 6