383. 赎金信
分析
-
构建字符频率表
- 遍历
magazine,统计每个字符出现的次数。
- 遍历
-
逐字符匹配
- 如果
hash[c] > 0,说明字符可用,使用后数量减1 - 如果
hash[c] == 0,说明字符不足,返回false
- 如果
-
全部匹配成功
- 如果遍历完
ransomNote没有提前返回false,则说明可以成功构造,返回true
- 如果遍历完
时间复杂度
时间复杂度 O(n + m)
空间复杂度
空间复杂度为 O(1)
C++代码
|
|
构建字符频率表
magazine,统计每个字符出现的次数。逐字符匹配
hash[c] > 0,说明字符可用,使用后数量减 1hash[c] == 0,说明字符不足,返回 false全部匹配成功
ransomNote 没有提前返回 false,则说明可以成功构造,返回 true时间复杂度 O(n + m)
空间复杂度为 O(1)
|
|