题目:
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram" 输出: true
示例 2:
输入: s = "rat", t = "car" 输出: false
说明:
你可以假设字符串只包含小写字母。
进阶:
如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?
解题思路:
对字母出现的次数进行统计,s累加,t累减,最后查看有没有多余出现的字母。
代码实现:
class Solution { public boolean isAnagram(String s, String t) { if (s == null || t == null) return false; if (s.length() == 0 || t.length() == 0) return s.length() == t.length(); int[] count = new int[26]; for (char c : s.toCharArray()) { count[c - 'a'] ++; } for (char c : t.toCharArray()) { count[c - 'a'] --; } for (int i : count) { if (i != 0) return false; } return true; } }