public boolean canConstruct(String ransomNote, String magazine) {
    Map<Character, Integer> map = new HashMap<>();
    for (char c : magazine.toCharArray()) {
        int count = map.containsKey(c) ? map.get(c) + 1 : 1;
        map.put(c, count);
    }
    for (char c : ransomNote.toCharArray()) {
        int newCount = map.containsKey(c) ? map.get(c) - 1 : -1;
        if (newCount == -1) return false;
        map.put(c, newCount);
    }
    return true;
}



public boolean canConstruct(String ransomNote, String magazine) {
    int[] table = new int[128];
    for (char c : magazine.toCharArray())   table[c]++;
    for (char c : ransomNote.toCharArray())
        if (--table[c] < 0) return false;
    return true;
}

results matching ""

    No results matching ""