继续向前刷 58 ~ 最后一个单词的长度
基本信息
- 题号:58
- 题厂:亚麻
- 难度系数:低
输入一个带有空格的句子,问最后一个单词的长度是多少?
区分单词:就是连续字符串中间无空格
解题思路
- 处理字符串基础题,创建一个 counter 计数就好
- 但是要注意的是,输入句子可以空格结尾,只要处理好空格即可
# 创建名为 length 的 counter 计数 # 从后往前做 for 循环,一旦检测到非末尾空格 length +1 # 第二次遇上空格后,跳出循环返回 length class Solution: def lengthOfLastWord(self, s: str) -> int: length = 0 for i in range(len(s) - 1, -1, -1): if s[i] != " ": length += 1 elif length > 0: break else: continue return length
Constraints
1 <= s.length <= 104
s consists of only English letters and spaces ' '.
There will be at least one word in s.
本题取值范围确认了无特殊状况分析。考试的时候,解题前可以向考官咨询讨论:
- 除了空格,还会不会有其他特殊字符;如果有,特殊字符算 word 还是不算?
- 会不会遇上没有 word 返回的情况?
Big O
- Time:O(n),最坏的情况就是整个句子都是 word,要遍历完整才能返回;
- Space:O(1)
测试
- 将空格安插在不同的位置
- ……
总结
入门级简单题,适合刷题小白热身进入刷题状态。
考点:熟悉字符串操作 + 会倒着写 for 循环……