求star

开源不易,喜欢请点个star吧

Ocean Han
193 字
1 分钟
Leetcode->赎金信(是否能构成子串)
2022-08-01

题目#

给你两个字符串:ransomNotemagazine ,判断 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 <= ransomNote.length, magazine.length <= 105

  • ransomNotemagazine 由小写英文字母组成

解题:key:#

/**
 \* @param {string} ransomNote
 \* @param {string} magazine
 \* @return {boolean}
 */
var canConstruct = function (ransomNote, magazine) {
    if (magazine.length < ransomNote.length)
        return false
    let hash = []
    for (let i = 0; i < magazine.length; i++) {
        if (!hash[magazine[i]]) {
            hash[magazine[i]] = 1
        } else {
            hash[magazine[i]]++
        }
    }
    for (let i = 0; i < ransomNote.length; i++) {
        if (!hash[ransomNote[i]]) {
            return false
        }
        hash[ransomNote[i]]--
    }
    return true
};
Leetcode->赎金信(是否能构成子串)
https://blog.oceanh.top/posts/algorithm/赎金信是否能构成子串/
作者
Ocean Han
发布于
2022-08-01
许可协议
CC BY-NC-SA 4.0
最后修改时间
2024-08-10 10:08:49