1405. 最长快乐字符串
一开始觉得用大顶堆实现不错,但是后来一想入队出队太麻烦
就直接根据贪心 然后按字母排序来做,若有两个连续字母了就到下一个字母,否则一直添加最多的那个字母 ,然后每次排序一次就行
也可以使用判断来做,因为只有三个字母
class Solution:
def longestDiverseString(self, a: int, b: int, c: int) -> str:
res = ''
lis = [[a,'a'],[b,'b'],[c,'c']]
while True:
for lat in sorted(lis,key = lambda x:-x[0]):
if lat[0] <=0 :
return res
if len(res) >= 2 and res[-2:] == lat[1] * 2:
continue
res += lat[1]
lat[0] -= 1
break
return res
1773. 统计匹配检索规则的物品数量
打一个字典,然后遍历统计相等个数就行
class Solution:
def countMatches(self, items: List[List[str]], ruleKey: str, ruleValue: str) -> int:
dict = {"type":0,"color":1,"name":2}
res = 0
for item in items:
if item[dict[ruleKey]] ==ruleValue:
res += 1
return res