【87.赎金信】

41 阅读1分钟

题目

给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。

如果可以,返回 true ;否则返回 false 。

magazine 中的每个字符只能在 ransomNote 中使用一次。

示例 1:

输入: ransomNote = "a", magazine = "b"
输出: false

题解

方式一:哈希表

public boolean canConstruct(String ransomNote, String magazine) {
    int[] chars = new int[26]; // 也可以用map记录数量
    for (char c: magazine.toCharArray()) {
        chars[c - 'a']++;
    }
    for (char c: ransomNote.toCharArray()) {
        chars[c - 'a']--;
        if (chars[c - 'a'] < 0) {
            return false;
        }
    }
    return true;
}

总结

数据结构:哈希表