Python实现Anagram(变位词)判断并新增相同单词判定的方法
修改Python代码以加入“相同单词”判定逻辑
需求说明
需针对以下三种场景给出对应判定:
- cat - kitten → 不是Anagram(变位词)
- cat - act → 是Anagram(变位词)
- cat - cat → 判定为“相同单词”
原代码问题分析
原代码仅实现了变位词的判断逻辑,未区分“相同单词”与“变位词”,且存在冗余的重复排序操作(变量a本身已是排序后的结果)。
修改后的代码
s1 = input("请输入第一个单词:") s2 = input("请输入第二个单词:") # 预处理:统一转小写,仅保留字母字符 s1_clean = ''.join([s.lower() for s in s1 if s.isalpha()]) s2_clean = ''.join([s.lower() for s in s2 if s.isalpha()]) if s1_clean == s2_clean: print("相同单词") elif sorted(s1_clean) == sorted(s2_clean): print("是Anagram(变位词)") else: print("不是Anagram(变位词)")
改动说明
- 预处理优化:将原代码生成的排序字符列表改为拼接成完整字符串,便于直接判断是否为相同单词
- 优先级调整:把“相同单词”的判断放在最前面,优先级高于变位词判断
- 性能优化:移除原代码中冗余的
sorted(a)重复排序操作,直接对预处理后的字符串进行排序比较
内容的提问来源于stack exchange,提问作者gfffh
相关产品推荐
相关产品推荐

