033 · Ransom Note

algorithm
Published

June 9, 2026

Problem

给定两个字符串 ransomNotemagazine

请判断:能不能用 magazine 里的字母拼出 ransomNote

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

注意,magazine 里的每个字符最多只能使用一次。也就是说,如果 magazine 里只有一个 "a",那它只能贡献一个 "a",不能同时用来拼两个位置。

例如:

ransomNote = "aa"
magazine = "aab"

magazine 里有两个 "a",所以可以拼出 "aa",答案是:

true

但如果:

ransomNote = "aa"
magazine = "ab"

虽然 magazine 里有 "a",但只有一个 "a",不够拼出两个 "a",所以答案是:

false

Examples

示例 1

Input:  ransomNote = "a", magazine = "b"
Output: false

解释:magazine 里没有 "a",所以不能拼出 ransomNote

示例 2

Input:  ransomNote = "aa", magazine = "ab"
Output: false

解释:ransomNote 需要两个 "a",但 magazine 里只有一个 "a"

示例 3

Input:  ransomNote = "aa", magazine = "aab"
Output: true

解释:magazine 里有两个 "a",可以用来拼出 "aa"

Constraints

  • \(1 \leq\) ransomNote.length, magazine.length \(\leq 10^5\)
  • ransomNotemagazine 只由小写英文字母组成