242.有效的字符异位词
给定两个字符串 s
和 t
,编写一个函数来判断 t
是否是 s
的字母异位词。
注意:若 s
和 t
中每个字符出现的次数都相同,则称 s
和 t
互为字母异位词。
示例 1:
1 2
| 输入: s = "anagram", t = "nagaram" 输出: true
|
示例 2:
1 2
| 输入: s = "rat", t = "car" 输出: false
|
Solution:哈希表
用一个Map
记录字符串s
中字符的出现次数,然后遍历字符串t
,字符没出现一次就出现次数就-1,如果出现次数最后<0,说明不匹配
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| class Solution { public boolean isAnagram(String s, String t) { if (s.length() != t.length()) { return false; } Map<Character, Integer> table = new HashMap<Character, Integer>(); for (int i = 0; i < s.length(); i++) { char ch = s.charAt(i); table.put(ch, table.getOrDefault(ch, 0) + 1); } for (int i = 0; i < t.length(); i++) { char ch = t.charAt(i); table.put(ch, table.getOrDefault(ch, 0) - 1); if (table.get(ch) < 0) { return false; } } return true; } }
|