Мішок , також званий мультімножество, це невпорядкована колекція. Ви можете назвати це набором, який дозволяє дублікати, або списком (або масивом), який не впорядкований / індексований. У цьому виклику вам пропонується здійснити операції з мішком: додавання, різницю, множення, поділ, підрахунок та перевірку рівності.
Операції
Зазначені операції можуть не бути звичайними.
- Крім того, поєднує два пакети в один, зберігаючи загальну кількість кожного значення
[1,2,2,3] + [1,2,4] = [1,1,2,2,2,3,4]
- різниця видаляє з мішка кожен елемент іншого мішка, або нічого не робить, якщо такого елемента немає
[1,2,2,4] - [1,2] = [2,4]
[1,2,3] - [2,4] = [1,3]
- множення множить кожен елемент у сумці.
[1,2,3,3,4] * 3 = [1,1,1,2,2,2,3,3,3,3,3,3,4,4,4]
2 * [1,3] = [1,1,3,3]
- поділ є рідкісним: кожен n рівних елементів поміщається в n рівних нових мішків, елементи, які не можуть сформувати n-групу, залишаються в мішку. Поверніть будь-який із п нових мішків.
[1,1,2,2,2] / 2 = [1,2]
[1,2,2,3,3,3] / 3 = [3]
- підрахунок підраховує, скільки мішків дільника можна отримати з мішка дивідендів
[1,1,2,2,2,2,3,3,3] c [1,2,3] = 2
- перевірка рівності перевіряє, чи є в двох пакетах однакові номери кожного елемента
[1,2,2,3] == [3,2,1,2] = truthy
[1,2,3] == [1,2,2,3] = falsy
(можна також використовувати=
для цього)
Якщо ви використовуєте власні символи для операторів, будь ласка, вкажіть.
Формати
Сумки відображатимуться як списки форми [1,1,2,3,4]
. Ви можете використовувати будь-яку іншу дужку, ніж квадратну, або навіть використовувати лапки, або взагалі нічого. Елементи будуть цілими числами (математично, не обов'язково int
) для цього питання. Мішки не слід сортувати.
Формат введення буде двома пакетами або мішком і цілим числом, з оператором. Ви можете вказати власний формат, якщо він містить ці три.
Формат виводу повинен бути одним пакетом одного формату.
Правила
- ви не можете використовувати вбудовані функції, операції або бібліотеки (включаючи стандартну бібліотеку), які вже реалізують їх; добре, хоча використовувати конкатенацію та множення списку, оскільки вони є операціями зі списком визначення, а не операціями з мішками (які, як правило, роблять те саме)
- застосовуються стандартні лазівки
- виграє найкоротша відповідь
Тестові кейси
[1,2,2,3] + [1,2,4]
[1,1,2,2,2,3,4]
[1,2,2,4] - [1,2]
[2,4]
[1,2,3] - [2,4]
[1,3]
[1,2,3,3,4] * 3
[1,1,1,2,2,2,3,3,3,3,3,3,4,4,4]
2 * [1,3]
[1,1,3,3]
[1,1,2,2,2] / 2
[1,2]
[1,2,2,3,3,3] / 3
[3]
[1,1,2,2,2,2,3,3,3] c [1,2,3]
2
[3,2,1,2] == [1,2,2,3]
truthy
[1,2,3] == [1,2,2,3]
falsy