LeetCode 10 正则表达式匹配 Python re库本地正常提交报错问询
LeetCode 第10题 正则表达式匹配 问题排查与修复
错误原因
你提交的代码不符合LeetCode的接口要求,核心问题有两个:
- 返回值类型不匹配:LeetCode要求
isMatch函数返回布尔类型的True/False,但你的代码返回的是字符串类型的"true"/"false"。Python中所有非空字符串的布尔判定结果都是True,所以判题系统会识别为所有测试用例都返回True,导致全部判错。 - 冗余代码:
p = r"{}".format(p)属于无效操作,输入的p本身就是合法的正则表达式字符串,不需要额外做raw字符串格式化。
修复后代码
直接返回正则匹配结果的布尔值即可,代码可以简化为:
import re class Solution: def isMatch(self, s: str, p: str) -> bool: return bool(re.fullmatch(p, s))
如果要保留你原来的写法,只需要修改返回值即可:
import re class Solution: def isMatch(self, s: str, p: str) -> bool: p = re.compile(p) if p.fullmatch(s): return True else: return False
补充说明
你本地测试时打印字符串"true"/"false",输出肉眼看起来正确,但LeetCode判题系统只会读取函数的返回值,不会解析标准输出的打印内容,所以换成print也无法通过。
内容的提问来源于stack exchange,提问作者Shubham Nanche
相关产品推荐
相关产品推荐

