/*
 * @lc app=leetcode.cn id=383 lang=javascript
 *
 * [383] 赎金信
 */

// @lc code=start
/**
 * @param {string} ransomNote
 * @param {string} magazine
 * @return {boolean}
 */
var canConstruct = function (ransomNote, magazine) {
  const hash = new Map();
  const n1 = ransomNote.length;
  const n2 = magazine.length;

  for (let i = 0; i < n2; i++) {
    hash.set(magazine[i], (hash.get(magazine[i]) || 0) + 1);
  }

  for (let j = 0; j < n1; j++) {
    const cur = ransomNote[j]
    if (!hash.has(cur)) {
      return false;
    }
    const count = hash.get(cur);
    if (count === 1) {
      hash.delete(cur);
    } else {
      hash.set(cur, count - 1);
    }
  }
  return true;
};
// @lc code=end

console.log(canConstruct('aa', 'ab'))