leetcode383赎金信

leetcode 383 Ransom Note

Posted by BY on October 9, 2020

前言

持续更新了

正文

问题来源

本问题来自leetcode上的383题。

问题描述

给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构成。如果可以构成,返回 true ;否则返回 false。
(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。杂志字符串中的每个字符只能在赎金信字符串中使用一次。)

示例 1:

canConstruct("a", "b") -> false
canConstruct("aa", "ab") -> false
canConstruct("aa", "aab") -> true

分析:

func canConstruct(ransomNote string, magazine string) bool {
    d := make([]int, 26)
    for i := 0; i < len(magazine); i++ {
        d[magazine[i]-'a']++
    }
    for i := 0; i < len(ransomNote); i++ { 
        index := ransomNote[i]-'a' 
        d[index]--
        if d[index] < 0 {
            return false
        }
    }
    return true
}

总结:

勤思考。

结语

不管怎么样好好加油。