给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram" 输出: true
示例 2:
输入: s = "rat", t = "car" 输出: false
public boolean isAnagram (String s, String t){ //创建一个char ascii的数组对应表 int[] charsMap = new int['z' - 'a' + 1]; //遍历数组 for (char c : s.toCharArray()) { //取减去97后的码值 int pos = c - 'a'; //将对应位置的数组值+1,默认为0 charsMap[pos]++; } for (char c : t.toCharArray()) { int pos = c - 'a'; //同理将对应位置的数组值-1 charsMap[pos]--; } //如果两个字符串相等,那么其对应码值上的数组值应为0 //比如s字符串中有a,那么在对应数组里的对应位置+1, //如果t字符串中也有a,那么数组对应的位置就应该-1,最后变成0 for (int count : charsMap) { if (count != 0) { return false; } } return true; }