You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LeetCode可输入单词数问题提交报错求助:输出与预期不符

问题分析与代码修正

问题场景

你在LeetCode完成「Maximum Number of Words You Can Type」题目时,遇到本地测试正常但提交出错的问题。针对测试用例:

  • text = "a b c d e"
  • brokenLetters = "abcde"
    你的代码输出为1,但预期输出是0,且仅文本包含单个字母单词的场景会出错。

你的代码问题

你提交的代码存在多处逻辑漏洞:

  • 循环遍历brokenLetters时,每次都重新分割文本,还硬取前两个单词(text[0]、text[1]),完全没处理单词数量超过2的情况(比如测试用例里的5个单词)
  • 循环第一次迭代就直接return,既没遍历完所有坏字符,也没统计所有可正常输入的单词数
  • 判断逻辑仅检查前两个单词是否包含当前坏字符,完全没覆盖所有单词,也没正确统计每个单词是否可输入

正确逻辑与修正代码

正确的解题思路应该是:

  1. 将文本分割成单词列表
  2. 逐个检查每个单词是否不包含任何坏字符
  3. 统计符合条件的单词总数

修正后的代码:

def canBeTypedWords(self, text, brokenLetters):
    words = text.split()
    broken_chars = set(brokenLetters)
    valid_count = 0
    for word in words:
        # 检查单词中是否没有任何坏字符
        if not any(char in broken_chars for char in word):
            valid_count += 1
    return valid_count

逻辑说明

  • 仅执行一次text.split(),避免重复分割文本的无效操作
  • 将坏字符转为集合,提升字符查找的效率
  • 遍历每个单词,用any()函数快速判断单词是否包含坏字符:如果单词里没有任何坏字符,就计入有效数
  • 最终返回有效单词的总数,完全符合题目要求

针对你的测试用例:分割后的5个单字母单词都在坏字符集合里,没有有效单词,返回0,与预期一致。

内容的提问来源于stack exchange,提问作者user531309

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 06:50:26