leetcode 有效的字母异位词 java
题目:
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram" 输出: true
示例 2:
输入: s = "rat", t = "car" 输出: false
说明:
你可以假设字符串只包含小写字母。
进阶:
如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?
解题:
先判断两个字符串的长度大小,不相等时则返回false;
然后遍历字符串,用两个数组存储两个字符串相应字母(0到25对应a到z)的数量。然后比较数组对应元素大小,不同则返回false。
class Solution { public boolean isAnagram(String s, String t) { int[] sCounts = new int[26]; int[] tCounts = new int[26]; for (char ch : s.toCharArray()) { sCounts[ch - 'a']++; } for (char ch : t.toCharArray()) { tCounts[ch - 'a']++; } for (int i = 0; i < 26; i++) { if (sCounts[i] != tCounts[i]) { return false; } } return true; } }