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

LeetCode 242有效字母异位词代码调试及修正请求

LeetCode 242: 有效字母异位词代码提交错误修复

问题描述

针对LeetCode 242题(判断两个字符串是否为有效字母异位词)编写的Python代码,在本地VSCode测试输入s="a"、t="ab"时返回"false"符合预期,但提交到LeetCode平台后却错误返回true。原代码如下:

class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        
        if len(s) != len(t):
            return "false"
        
        dict1 = {}
        
        for key in s:
            if key in dict1:
                dict1[key] +=1
            else:
                dict1[key] =1

        dict2 = {}
        
        for key in t:
            if key in dict2:
                dict2[key] +=1
            else:
                dict2[key] =1

        for key in dict1:
            if dict1[key] != dict2.get(key, 0):
                return "false"

        for key in dict2:
            if dict2[key] != dict1.get(key, 0):
                return "false"

        return "true"

问题根源

代码返回的是字符串类型的"true"/"false",但LeetCode题目要求返回布尔类型的True/False。在Python中,所有非空字符串都会被视为布尔真值,因此即便代码返回"false",平台也会将其判定为True,导致提交结果错误。

修正方案

将所有返回语句中的字符串"true"改为布尔值True,"false"改为布尔值False即可。修正后的代码如下:

class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        
        if len(s) != len(t):
            return False
        
        dict1 = {}
        
        for key in s:
            if key in dict1:
                dict1[key] +=1
            else:
                dict1[key] =1

        dict2 = {}
        
        for key in t:
            if key in dict2:
                dict2[key] +=1
            else:
                dict2[key] =1

        for key in dict1:
            if dict1[key] != dict2.get(key, 0):
                return False

        for key in dict2:
            if dict2[key] != dict1.get(key, 0):
                return False

        return True

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 01:53:14