Ctrl K

Табло заказов для кухни

Средняя
Кафе хранит заказы списком orders, где orders[i] = [гость, столик, блюдо]; номер столика записан строкой. Кухне нужна сводная таблица (всё — строки): - первая строка — заголовок: "Table", а за ним названия всех заказанных блюд, отсортированные как строки (по кодам символов, так что заглавные буквы идут раньше строчных); - далее по одной строке на каждый столик, у которого был хотя бы один заказ, по возрастанию **номера** столика: номер столика, а затем для каждого блюда из заголовка — сколько раз его заказали за этим столиком. Имена гостей в таблицу не попадают. Верните эту таблицу.
Пример 1
orders=[["Mira", "7", "Pho"], ["Oleg", "2", "Lemonade"], ["Mira", "7", "Lemonade"], ["Ivo", "7", "Pho"]] → [['Table', 'Lemonade', 'Pho'], ['2', '1', '0'], ['7', '1', '2']]

Блюда по алфавиту: Lemonade, Pho. Столик 2 заказал один лимонад, столик 7 — один лимонад и два фо. Столик 2 идёт раньше 7, потому что столики сортируются как числа.

Пример 2
orders=[["Ann", "12", "Tea"], ["Bo", "3", "Tea"], ["Cy", "12", "Tea"]] → [['Table', 'Tea'], ['3', '1'], ['12', '2']]

Одно блюдо, два столика: 3 раньше 12, хотя как строка "12" меньше "3".

Пример 3
orders=[["Zed", "1", "green tea"], ["Zed", "1", "Green tea"]] → [['Table', 'Green tea', 'green tea'], ['1', '1', '1']]
Ограничения
  • 1 ≤ len(orders) ≤ 5 · 10⁴
  • len(orders[i]) = 3
  • имя гостя и название блюда — от 1 до 20 символов, только английские буквы и пробел
  • номер столика — целое число от 1 до 500 без ведущих нулей
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиРазложить анаграммы по группам СредняяПодпоследовательность только одного слова СредняяСамые частые запросы СредняяСлово, выращенное по букве СредняяСклеить карточки контактов Средняя
загружаем Python…
Вход
orders=[["Mira", "7", "Pho"], ["Oleg", "2", "Lemonade"], ["Mira", "7", "Lemonade"], ["Ivo", "7", "Pho"]]
Ожидается
[['Table', 'Lemonade', 'Pho'], ['2', '1', '0'], ['7', '1', '2']]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 56 тестов на сервере, включая скрытые.