给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。
    如果可以,返回 true ;否则返回 false 。
    magazine 中的每个字符只能在 ransomNote 中使用一次。

    示例 1:
    输入:ransomNote = “a”, magazine = “b”
    输出:false
    示例 2:
    输入:ransomNote = “aa”, magazine = “ab”
    输出:false
    示例 3:
    输入:ransomNote = “aa”, magazine = “aab”
    输出:true

    1. /**
    2. * @param {string} ransomNote
    3. * @param {string} magazine
    4. * @return {boolean}
    5. */
    6. var canConstruct = function (ransomNote, magazine) {
    7. const map = new Map();
    8. for (str of magazine) {
    9. map.set(str, (map.get(str) || 0) + 1)
    10. }
    11. for (let i = 0; i < ransomNote.length; i += 1) {
    12. if (map.has(ransomNote[i])) {
    13. map.set(ransomNote[i], (map.get(ransomNote[i]) - 1))
    14. if (map.get(ransomNote[i]) < 0) {
    15. return false
    16. }
    17. } else {
    18. return false
    19. }
    20. }
    21. return map.size > 0
    22. };

    image.png