LeetCode242. 有效的字母异位词

一、题目描述

二、解法

class Solution {
    public boolean isAnagram(String s, String t) {
        if (s.length() != t.length()) return false;
        int[] dict = new int[26];
        /**
         * 写法1
         */
        for (char c : s.toCharArray()) {
            dict[c - 'a'] ++;
        }
        for (char c : t.toCharArray()) {
            dict[c - 'a'] --;
            // 如果出现小于0的情况,则说明t包含一个不在s中的额外字符
            // 原因是两个串长度相等,有频次大于0的情况必存在频次小于0的元素
            if (dict[c - 'a'] < 0) {
                return false;
            }
        }
        return true;
        /**
         * 写法2
         */
        /*for (int i = 0; i < s.length(); i++) {
            dict[s.charAt(i) - 'a'] ++;
            dict[t.charAt(i) - 'a'] --;
        }
        for (int count : dict) {
            if (count != 0) {
                return false;
            }
        }
        return true;*/
    }
}

 

posted @ 2020-12-10 21:30  不学无墅_NKer  阅读(73)  评论(0编辑  收藏  举报