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

LeetCode14最长公共前缀:输入空字符串为何返回""而非None?

最长公共前缀函数返回值疑问解答

你提到的问题核心是:当传入包含空字符串的列表(比如[""])时,函数返回""而非None,不符合你对开头判断分支的预期,原因如下:

  • 开头的if len(strs) == 0 or strs is None:仅针对空列表或None的情况触发返回None,比如传入[]或者None才会走这个分支。
  • 当你传入[""]时,列表长度为1,既不是空列表也不是None,所以不会进入这个判断分支。
  • 后续代码执行p = len(min(strs, key=len)),这里取到的最短字符串就是空字符串,长度为0,因此循环for i in range(p)不会执行,直接返回初始定义的ans = ""。

另外补充:LeetCode第14题的题目要求中,当输入包含空字符串时,最长公共前缀本身就是空字符串,所以你当前代码的返回结果是符合题目要求的。如果确实需要在这种场景返回None,可以修改判断逻辑,加入对列表中空字符串的检查:

class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        ans = ""
        if len(strs) == 0 or strs is None or "" in strs:
            return None
        p = len(min(strs,key=len))
        for i in range(p):
            current = strs[0][i]
            for j in range(len(strs)):
                if current != strs[j][i]:
                    return ans
            ans += current
        return ans

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 20:57:21