查看题目
使用数组来模拟哈希表,主要思想如下:
class Solution { public boolean isAnagram(String s, String t) { int[] record = new int[26]; //使用数组作为哈希表,创建一个长度为26的数组,将字符串中的每一个字符计算它 //在字母表的位置,然后根据位置存入数组中去。每次将对应的数组的值加一(从0开始) for(char c : s.toCharArray()){ record[c - 'a'] += 1; } //对t进行操作,如果存在,将数组中的对应位置减1(可能会减到-1,但是不重要) for(char c : t.toCharArray()){ record[c - 'a'] -= 1; } for(int i : record){ //判断数组中的每个元素是不是为零,可能事负数,但是不重要,只要不是0就代表对应的 //字母的个数不一样,只要有一个不一样,就不符合要求,直接返回false即可 if(i != 0){ return false; } } return true; } }