基本資料#
難易度: medium 第一次嘗試: 2025-04-27
- 總花費時間:00:00.00
解題思路#
使用 Counter
來統計每個 response status 出現的次數。
如果有多個 status 出現次數一樣多,就取字典序最小的那一個作為答案。
解法#
class Solution:
def findCommonResponse(self, responses: List[List[str]]) -> str:
from collections import Counter
l = []
for response in responses:
l.extend(list(set(response)))
count_map = Counter(l)
max_occur = max(count_map.values())
status_list = [k for k,v in count_map.items() if v == max_occur]
return sorted(status_list)[0]
根據 Runtime 排名的優化#
其實不需要先建一個 list l
再統一用 Counter
統計,
可以直接初始化一個空的 Counter
,
然後在遍歷 responses 時,直接用 set(response)
去更新 Counter。
另外,為了取字典序最小的 status,可以直接使用 min()
函式。
class Solution:
def findCommonResponse(self, responses: List[List[str]]) -> str:
from collections import Counter
counter = Counter()
for response in responses:
res = set(response)
counter.update(res)
max_occur = max(counter.values())
status_list = [k for k,v in counter.items() if v == max_occur]
return min(status_list)
收穫#
NA
遇到的問題#
NA