继续向前刷 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 <= 104s 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 循环……