Sebuah tas , juga disebut multiset, adalah koleksi unordered. Anda bisa menyebutnya set yang memungkinkan duplikat, atau daftar (atau array) yang tidak dipesan / diindeks. Dalam tantangan ini, Anda diminta untuk mengimplementasikan operasi tas: penambahan, perbedaan, perkalian, pembagian, penghitungan dan uji kesetaraan.
Operasi
Operasi yang ditentukan mungkin tidak konvensional.
- Selain itu menggabungkan dua tas menjadi satu, menghemat jumlah total setiap nilai
[1,2,2,3] + [1,2,4] = [1,1,2,2,2,3,4]
- perbedaan menghapus dari tas setiap elemen dari tas lain, atau tidak melakukan apa pun jika tidak ada elemen tersebut
[1,2,2,4] - [1,2] = [2,4]
[1,2,3] - [2,4] = [1,3]
- multiplikasi mengalikan setiap elemen dalam tas.
[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]
- pembagian adalah hal yang tidak biasa: setiap n elemen yang sama dimasukkan ke dalam n tas yang sama, elemen yang tidak dapat membentuk n-grup tetap berada di dalam tas. Kembalikan salah satu dari n tas baru.
[1,1,2,2,2] / 2 = [1,2]
[1,2,2,3,3,3] / 3 = [3]
- menghitung menghitung berapa banyak tas pembagi dapat diproduksi dari tas dividen
[1,1,2,2,2,2,3,3,3] c [1,2,3] = 2
- pemeriksaan kesetaraan memeriksa apakah dua kantung memiliki angka yang sama dari setiap elemen
[1,2,2,3] == [3,2,1,2] = truthy
[1,2,3] == [1,2,2,3] = falsy
(dapat juga digunakan=
untuk ini)
Jika Anda menggunakan simbol Anda sendiri untuk operator, silakan tentukan.
Format
Tas akan ditampilkan sebagai daftar formulir [1,1,2,3,4]
. Anda dapat menggunakan braket lain selain yang persegi, atau bahkan menggunakan tanda kutip, atau tidak sama sekali. Elemen-elemen akan menjadi bilangan bulat (secara matematis, tidak harus int
) untuk tujuan pertanyaan ini. Tas tidak harus disortir.
The format masukan akan dua tas atau tas dan integer, dengan operator. Anda dapat menentukan format Anda sendiri asalkan memuat tiga format ini.
The format output harus menjadi tas tunggal format yang sama.
Aturan
- Anda tidak boleh menggunakan fungsi, operasi, atau perpustakaan bawaan (termasuk perpustakaan standar) yang sudah menerapkan ini; tidak apa-apa untuk menggunakan daftar concatenation dan multiplikasi karena mereka adalah operasi daftar definisi, bukan operasi tas (yang pada dasarnya melakukan hal yang sama)
- celah standar berlaku
- jawaban terpendek menang
Uji kasus
[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