题目
给定两个字符串s
和t
,编写一个函数来判断t
是否是s
的字母异位词
示例:
1 | 输入: s = "anagram", t = "nagaram" |
解法
这里提供三种解法
直接排序
因为大部分语言中都自带排序函数,我们可以直接把两个字符串进行排序,因为如果两个字符串互为字母异位词的话,那么他们所包含的字母及每个字母的数量就是一致的,代码很简洁,使用 Python 的话只有两行
Python 代码
1 | def isAnagram(self, s, t): |
使用 map 记住每个字母的数量
我们也可以利用 map 键值对的特性,使用两个 map 来存储每个字符串中的每一个字母出现的次数,最后直接比较这两个 map 是否相等即可,代码使用的是 Python 中的字典
Python 代码
1 | def isAnagram(self, s, t): |
使用长度为 26 的数组计数
题目给出了两个字符串中的字符均为小写,我们可以直接初始化两个长为 26,初始值都为 0 的数组,然后遍历两个字符串来给字符串中的字符进行计数,最后比较数组是否相等
Java 代码
1 | public boolean isAnagram(String s, String t) { |
Python 代码
1 | def isAnagram(self, s, t): |