import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param s string字符串
     * @param c string字符串
     * @return int整型
     */
    public int isCongruent (String s, String c) {
        // 长度不同直接返回-1
        if (s.length() != c.length()) {
            return -1;
        }
        
        Map<Character, Integer> countMap = new HashMap<>();
        
        // 统计第一个字符串的字符频次
        for (int i = 0; i < s.length(); i++) {
            char ch = s.charAt(i);
            countMap.put(ch, countMap.getOrDefault(ch, 0) + 1);
        }
        
        // 验证第二个字符串的字符频次
        for (int i = 0; i < c.length(); i++) {
            char ch = c.charAt(i);
            // 若字符不存在或频次已为0,说明不匹配
            if (!countMap.containsKey(ch) || countMap.get(ch) == 0) {
                return -1;
            }
            countMap.put(ch, countMap.get(ch) - 1);
        }
        
        // 检查所有字符频次是否都为0
        for (int count : countMap.values()) {
            if (count != 0) {
                return -1;
            }
        }
        
        // 是字母异位词,返回长度
        return s.length();
    }
}