力扣经典面试题
1.本题的目标是判断字符串ransomNote是否由字符串magazine中的字符构成,且由magazine中的每个字符只能在ransomNote中使用一次
2.采用的方法是通过一个字典cahr_countl来统计magazine字符串中每个字符出现的次数
3.然后遍历ransomNote字符串,对于其中的每个字符,检查它是否在char_count字典中且对应的计数大于0。如果是,就将该字符在字典中的计数减1,表示已经使用了这个字符一次;如果不满足条件(字符不在字典中或者计数已经为0),就说明无法用magazine中的子粗构成ransomNote,直接返回false。
4.如果能够顺利遍历完ransomNote字符串,说明ransomNote可以由magazine中的字符构成,此时返回True
代码:
代码解析:
1.首先创建一个空字典char_count,用于统计magazine字符串中每个字符的出现次数。
然后通过第一个for循环遍历magazine字符串:
对于magazine中的每个字符char,先检查它是否已经在char_count字典中,
如果在,就将其应的计数加 1;如果不在,就将该字符作为键添加到字典中,并将其计数初
始化为 1。这样就完成了对 magazine 中字符出现次数的统计。
2. 接着通过第二个for 循环遍历 ransomNote 字符串:
对于 ransomNote 中的每个字符char,先检查它是否在 字典中,并且该字符在
字典中的计数是否大于 0。如果满足这两个条件,说明可以使用 magazine 中的这个字符来
构成ransomNote,此时将该字符在字典中的计数减 1,表示已经使用了一次;如果不满足
条件(字符不在字典中或者计数已经为 0),就直接返回False,因为无法用 magazine 中
的字符按照要求构成ransomNote。
如果能够顺利遍历完ransomNote 字符串,没有返回 False,就说明 ransomNote 可以由 magazine 中的字符构成,此时返回Ture