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
相关产品推荐
相关产品推荐

