一:题目描述:
给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。
如果可以,返回 true ;否则返回 false 。
magazine 中的每个字符只能在 ransomNote 中使用一次。
二:示例与提示
示例 1:
1 | 输入:ransomNote = "a", magazine = "b" |
示例 2:
1 | 输入:ransomNote = "aa", magazine = "ab" |
示例 3:
1 | 输入:ransomNote = "aa", magazine = "aab" |
提示:
1 <= ransomNote.length, magazine.length <= 105
ransomNote
和magazine
由小写英文字母组成
三:思路
hashmap
在ransomeNote中建立哈希map,遍历字符串,将每个字符都添加到map中,并设置初值为1,若有重复的字符,值自增,即出现几次值为几次
建立之后,遍历magazine字符串,并在map中查找对应字符,若存在,对应字符的value自减,即出现几次减几次。
最终查看map中字符的value值是否为0,若都为0,则magazine中的字符可以组成ransomNote,若存在不为0的value值,即说明未被抵消完全,无法组成
图解
四:代码
哈希表
1 | /** |