欢迎访问宙启技术站
智能推送

如何判断两个字符串是否是字母异位词,使用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函数返回的字典。在实际应用中,可以根据实际情况选择不同的方法。