土豆炒青椒
土豆炒青椒

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

CC BY-NC-ND 2.0 版权声明

喜欢我的文章吗?
别忘了给点支持与赞赏,让我知道创作的路上有你陪伴。

加载中…

发布评论