Python实现不区分大小写的Anagram(变位词)判断问题咨询
修改方案
你只需在去除空格的步骤后,将两个字符串统一转为全小写(或全大写)即可实现不区分大小写的判断,修改后的完整代码如下:
str1 = input("Enter First String: ") str2 = input("Enter Second String: ") # 去除空格后统一转小写,消除大小写差异 str1 = ''.join(str1.split()).lower() str2 = ''.join(str2.split()).lower() if sorted(str1) == sorted(str2) and len(str1) and len(str2): print("Strings are anagram") else: print("Strings are not anagram")
说明
- 新增的
lower()方法会将字符串内所有大写字符转换为小写,后续排序对比时就不会受输入大小写的影响,输入Listen和Silent也会被判定为变位词 - 如果需要统一转大写,把
lower()替换为upper()效果完全相同 - 原有逻辑里的
len(str1)和len(str2)判断是为了避免两个空字符串被判定为变位词,如果你允许这种场景,直接删除这两个判断条件即可
内容的提问来源于stack exchange,提问作者Ross Cruz
相关产品推荐
相关产品推荐

