题目浅析

  • 想查看原题可以点击题目链接

  • 简单地说,就是给三个列表,列表各项组合对应一个优惠券,并规定了优惠券的合法场景,要求筛选出其中合法的优惠券代码,并最终按几个条件排序。

思路分享

代码解答(强烈建议自行解答后再看)

  • 参考题解
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution:
def validateCoupons(self, code: List[str], businessLine: List[str], isActive: List[bool]) -> List[str]:
catagory_map = {
"electronics": 0 ,
"grocery": 1,
"pharmacy": 2,
"restaurant": 3,
}
group = [[] for _ in range(4)]
for s, b, a in zip(code, businessLine, isActive):
catagory = catagory_map.get(b, -1)

if catagory >= 0 and a and len(s) > 0 and all(c == "_" or c.isalnum() for c in s):
group[catagory].append(s)
ans = []
for g in group:
g.sort()
ans.extend(g)
return ans