Leetcode-242:有效的字母异位词

2019-04-27  本文已影响0人  小北觅

题目描述:
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。

思路:
使用hash表记录每个字符出现的次数,最后比较两个hash表里entry是否完全一致。
Hash表可以使用HashMap,或者自己定义数组。

class Solution {
    public boolean isAnagram(String s, String t) {
        Map<Character, Integer> map = new HashMap<>();
        for (char ch : s.toCharArray()) {
            map.put(ch, map.getOrDefault(ch, 0) + 1);
        }
        for (char ch : t.toCharArray()) {
            Integer count = map.get(ch);
            if (count == null) {
                return false;
            } else if (count > 1) {
                map.put(ch, count - 1);
            } else {
                map.remove(ch);
            }
        }
        return map.isEmpty();
    }
}
上一篇下一篇

猜你喜欢

热点阅读