1、题目描述:
2、题解:
此题用哈希映射来做比较合适,我们先建立一个哈希表:hashmap = {'b':0,'a':0,"l":0,'o':0,'n':0}
,然后遍历计算所给字符串在hashmap中相应的key的value值,在hashmap中,其相应的value就加1.最后统计hashmap中value的最小值,这个时候要注意要想组成气球:“balloon”,“l"和”o“必须出现两次,也就是如果检测到key是“l"或者”o“时,要把value值除以2。
class Solution:
def maxNumberOfBalloons(self, text: str) -> int:
#哈希表之映射
hashmap = {'b':0,'a':0,"l":0,'o':0,'n':0}
for s in text:
if s in hashmap:
hashmap[s] += 1
res = float('inf')
for key,value in hashmap.items():
if key == 'l' or key == 'o':
value //= 2
res = min(res,value)
return res
3、复杂度分析:
时间复杂度:O(N),N为字符串的长度
空间复杂度:O(1)