Мішок , також званий мультімножество, це невпорядкована колекція. Ви можете назвати це набором, який дозволяє дублікати, або списком (або масивом), який не впорядкований / індексований. У цьому виклику вам пропонується здійснити операції з мішком: додавання, різницю, множення, поділ, підрахунок та перевірку рівності.
Операції
Зазначені операції можуть не бути звичайними.
- Крім того, поєднує два пакети в один, зберігаючи загальну кількість кожного значення
[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