题目描述
题解
哈希表
使用哈希表结构, 先将s字符串中的所有字符都添加进去, key为字符, value为相应的频数
然后遍历t字符串, 如果当前遍历到的字符在哈希表中不存在, 直接返回false
如果当前字符在哈希表中存在, 那么分为两种情况
value>1
: 将其频数减一value==1
: 移除该键值对
1 | public boolean isAnagram(String s, String t) { |
用数组代替哈希表
因为题目已经说明只含有小写字母, 那么可以使用一个26位的数组来记录每个字母的频数, 最后遍历该数组, 只要有个数字不为0, 就返回false
1 | public boolean isAnagram(String s, String t) { |
快排
将两个字符串排序, 如果两个字符串排序后的结果是相同的, 那么返回true
, 否则返回false
1 | public boolean isAnagram2(String s, String t) { |