文巾解题 1418. 点菜展示表
Posted 刘文巾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文巾解题 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+1
dit_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]+=1
for 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. 点菜展示表的主要内容,如果未能解决你的问题,请参考以下文章