Bir torba ayrıca multiset adlandırılan, bir sırasız koleksiyon. Yinelemelere izin veren bir küme veya sıralanmamış / dizine eklenmemiş bir liste (veya bir dizi) diyebilirsiniz. Bu zorlukta, torba işlemlerini gerçekleştirmeniz istenir: toplama, fark, çarpma, bölme, sayma ve eşitlik testi.
Operasyonlar
Belirtilen işlemler geleneksel olmayabilir.
- toplama , her bir değerin toplam sayısını koruyarak iki torbayı bir araya getirir
[1,2,2,3] + [1,2,4] = [1,1,2,2,2,3,4]
- fark bir torbadan başka bir torbanın her elemanını kaldırır veya böyle bir eleman yoksa hiçbir şey yapmaz
[1,2,2,4] - [1,2] = [2,4]
[1,2,3] - [2,4] = [1,3]
- çarpma torbadaki her elemanı çarpar.
[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]
- bölme nadirdir: her n eşit eleman n eşit yeni torbaya konur, n-grubu oluşturamayan elemanlar torbada kalır. Yeni torbalardan herhangi birini iade edin.
[1,1,2,2,2] / 2 = [1,2]
[1,2,2,3,3,3] / 3 = [3]
- sayma , temettü çantasından kaç bölen torbasının üretilebileceğini sayar
[1,1,2,2,2,2,3,3,3] c [1,2,3] = 2
- Eşitlik testi , iki torbanın her elemanın aynı sayıda olup olmadığını kontrol eder
[1,2,2,3] == [3,2,1,2] = truthy
[1,2,3] == [1,2,2,3] = falsy
(bunun için de kullanılabilir=
)
Operatörler için kendi sembollerinizi kullanıyorsanız, lütfen belirtin.
Biçimleri
Çantalar form listesi olarak gösterilecektir [1,1,2,3,4]
. Kare olanlardan başka herhangi bir köşeli ayraç kullanabilir, hatta tırnak işaretleri kullanabilirsiniz veya hiçbir şey kullanamazsınız. Öğeler int
bu sorunun amacı için tamsayılar (matematiksel olarak değil ) olacaktır. Çantaların sınıflandırılması gerekmez.
Giriş biçimi bir operatör ile iki torba ya da bir torba ile bir tam sayı olacaktır. Bu üçünü içerdiği sürece kendi biçiminizi belirtebilirsiniz.
Çıkış biçimi aynı formatta tek bir çanta olmalıdır.
kurallar
- bunları zaten uygulayan yerleşik işlevleri, işlemleri veya kitaplıkları (standart kitaplık dahil) kullanamazsınız; çanta birleştirme (temel olarak aynı şeyi yapan) değil, tanımlama listesi işlemleri tarafından olduğundan, liste birleştirme ve çarpma kullanmak için sorun değil
- standart boşluklar geçerlidir
- en kısa cevap kazanır
Test senaryoları
[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