如何判断两个字符串是否是字母异位词,使用Python函数
发布时间:2023-06-09 01:08:47
字母异位词是指由相同的字母按照不同的顺序组成的单词。比如,listen和silent就是字母异位词。在Python中,可以通过以下方法判断两个字符串是否是字母异位词。
方法一:使用sort()函数
sort()函数可以将字符串中的字符按照字典序排序。如果两个字符串是字母异位词,那么它们经过排序后的字符串一定是相等的。因此,可以先将两个字符串都排序,然后比较它们是否相等。代码如下:
def isAnagram(s: str, t: str) -> bool:
return sorted(s) == sorted(t)
其中,sorted()函数返回一个排序后的字符列表,该函数不会改变原字符串的顺序。函数参数s和t分别代表两个字符串,函数返回一个bool值,如果s和t是字母异位词,返回True;否则,返回False。
方法二:使用collections模块中的Counter函数
Counter函数可以统计字符在字符串中出现的次数,返回一个字典。如果两个字符串是字母异位词,那么它们各个字符的出现次数应该完全一致。因此,可以使用Counter函数分别统计两个字符串中字符出现的次数,并将统计结果进行比较。代码如下:
from collections import Counter
def isAnagram(s: str, t: str) -> bool:
return Counter(s) == Counter(t)
其中,Counter(s)返回字符串s中每个字符出现的次数的字典。
这两种方法在时间复杂度上都是O(nlogn),因为都需要对字符串排序。相比之下,方法二在空间复杂度上更优,因为只需要用到Counter函数返回的字典。在实际应用中,可以根据实际情况选择不同的方法。
