编写一个Python程序来判断两个给定的字符串是否是错位词。
如果两个字符串具有相同的字符,但顺序不同,则被认为是彼此的错位词。 例如,restful
和fluster
是错位词。
- 定义函数
are_anagrams()
,有两个参数:string1
和string2
。 - 在函数内,如果两个字符串是错位词,则返回
True
,否则返回False
。
示例输入
Listen Silent
示例输出
True
本题忽略大小写和字符串中任何空格。
本题主要涉及列表推导、列表排序。
为了忽略大小写,本题用到了lower()函数
str.lower()大写转小写
str.upper()小写转大写
列表的排序有两种方式:
sort():格式为list.sort(),其直接修改原列表,不会返回新列表,其次还可以设定key参数进行自定义排序。如list.sort(key=str.lower)表示转小写。
sorted():格式为sorted(list),其不会修改原列表,会返回排序后的新列表。其也可以接受参数key进行自定义排序。如sorted(list,key=str.lower)
def are_anagrams(string1, string2):
# 此处编写代码
s1=[ch for ch in string1.lower() if ch!=' ']
s2=[ch for ch in string2.lower() if ch!=' ']
s1.sort()
s2.sort()
if string1!=string2 and s1==s2:
return True
else:
return False
# 获取输入string1 和 string2
string1 = input()
string2 = input()
# 调用函数并打印结果
print(are_anagrams(string1, string2))