文巾解题 1418. 点菜展示表
生活随笔
收集整理的這篇文章主要介紹了
文巾解题 1418. 点菜展示表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 題目描述
2 解題思路?
分幾步走:
第一步:找到一共幾張桌子,一共有幾
class Solution(object):def displayTable(self, orders):""":type orders: List[List[str]]:rtype: List[List[str]]"""num=set()dish=set()for i in orders:num.add(i[1])dish.add(i[2])num=list(num)dish=list(dish)num.sort(key=int)dish.sort() #找出有幾張桌子,幾道菜 #num,dish #(['3', '5', '10'], ['Beef Burrito', 'Ceviche', 'Fried Chicken', 'Water'])dit_dish2id={}for i,d in enumerate(dish):dit_dish2id[d]=i+1dit_table2id={}for i,d in enumerate(num):dit_table2id[d]=i+1 #每張桌子每道菜對應返回數組的橫縱坐標的下標 #dit_dish2id,dit_table2id #({'Beef Burrito': 1, 'Ceviche': 2, 'Fried Chicken': 3, 'Water': 4}, # {'3': 1, '5': 2, '10': 3})ret=[]tmp=['Table']tmp.extend(dish)ret.append(tmp)l_t=len(num)l_d=len(dish)for i in range(l_t):tmp=[num[i]]for j in range(l_d):tmp.append(0)ret.append(tmp) #生成初始的返回數組 #ret ''' [['Table', 'Beef Burrito', 'Ceviche', 'Fried Chicken', 'Water'],['3', 0, 0, 0, 0],['5', 0, 0, 0, 0],['10', 0, 0, 0, 0]] '''for i in orders:print(i)x=dit_table2id[i[1]]y=dit_dish2id[i[2]]ret[x][y]+=1for i in range(len(ret[1:])):for j in range(len(ret[0][1:])):ret[i+1][j+1]=str(ret[i+1][j+1])return(ret) ''' 遍歷每一條order,同時把int類型的部分轉換成str類型 '''道菜
第二步:每張桌子,每道菜對應返回的二維數組的橫縱坐標的下標
第三步:生成初始的返回數組
第四步:遍歷每一條order記錄
總結
以上是生活随笔為你收集整理的文巾解题 1418. 点菜展示表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NLP 笔记:Skip-gram
- 下一篇: 文巾解题 196. 删除重复的电子邮箱