zl程序教程

您现在的位置是:首页 >  其他

当前栏目

每日一题---383. 赎金信[力扣][Go]

2023-03-14 22:59:47 时间

题目描述

为了不在赎金信中暴露字迹,从杂志上搜索各个需要的字母,组成单词来表达意思。

给你一个赎金信 (ransomNote) 字符串和一个杂志(magazine)字符串,判断 ransomNote 能不能由 magazines 里面的字符构成。

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

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

image

解题代码

func canConstruct(ransomNote string, magazine string) bool {
    // 判断 magazine 上的字符是否使用过
    bools := make([]bool, len(magazine))
    length := len(ransomNote)
    // 暴力循环
    for _, rs := range ransomNote {
        for i, ms := range magazine {
            // 判断当前字符有没有被使用过且在 ransomNote 是否有相同字符存在
            if rs == ms && !bools[i]{
                bools[i] = true
                length --
                break
            }
        }
    }
    return length == 0
}

提交结果

image