LeetCode每日一题 | 383. 赎金信

文章目录

    • [LeetCode-383. 赎金信](#LeetCode-383. 赎金信)

LeetCode-383. 赎金信

题目描述

原题链接

给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。

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

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

问题分析

由于字符只涉及小写字母,因此遍历过程中只需要统计每个小写字母的出现次数。

若字符串magazine中的每个英文字母的统计次数都大于等于ransomNote对应英文字母的出现次数,则ransomNote能由magazine里面的字符构成。

程序代码(Golang 版本)

go 复制代码
func canConstruct(ransomNote string, magazine string) bool {
    if len(ransomNote) > len(magazine) {
        return false
    }
    m := [26] int{}
    // k, v
    for _, c := range magazine {
        m[c - 'a']++
    }
    for _, c := range ransomNote {
        m[c - 'a']--
        if m[c - 'a'] < 0 {
            return false
        }
    }
    return true
}
相关推荐
计算机安禾15 分钟前
【数据结构与算法】第12篇:栈(二):链式栈与括号匹配问题
c语言·数据结构·c++·学习·算法·visual studio code·visual studio
散峰而望25 分钟前
【数据结构】单调栈与单调队列深度解析:从模板到实战,一网打尽
开发语言·数据结构·c++·后端·算法·github·推荐算法
qwehjk200826 分钟前
内存泄漏自动检测系统
开发语言·c++·算法
tankeven30 分钟前
HJ153 实现字通配符*
c++·算法
低调的JVM30 分钟前
Golang下kafka可观测数据采集组件Otelsarama详解
golang·kafka·可观测·opentelemetry
旖-旎32 分钟前
位运算(两整数之和)(3)
c++·算法·leetcode·位运算
2301_8166512236 分钟前
C++与Rust交互编程
开发语言·c++·算法
ab15151739 分钟前
3.28完成9、16、20、98、100、55、57
算法
带娃的IT创业者44 分钟前
营养食谱推荐引擎:基于规则与协同过滤的混合算法
算法·规则引擎·协同过滤·健康管理·食谱推荐·营养搭配·家庭饮食
扶摇接北海1761 小时前
洛谷:P1307 [NOIP 2011 普及组] 数字反转
c++·算法·洛谷