Amacınız iki tamsayı listesinin kesişme noktasını hesaplamaktır. Kavşak, her iki giriş listesinde en az bir kez bulunan benzersiz sıralanmamış tamsayı grubu olarak tanımlanır.
Giriş
Giriş istenen herhangi bir formatta (fonksiyon parametresi, stdio, vb.) Olabilir ve iki tamsayı listesinden oluşur. Birçoğunuz, negatif olmayan tamsayılar içerebilmeleri dışında her liste hakkında hiçbir şey varsaymazsınız (yani ayrıştırılmaz, muhtemelen yinelenebilir, farklı uzunluklara sahip olabilir ve hatta boş olabilir). Her bir tamsayının dilinizin yerel imzalı tamsayı türüne sığacağı, 1 ondalık basamak uzunluğunda olabileceği ve imzalandığı varsayılmaktadır.
Örnek girdi:
1 4 3 9 8 8 3 7 0
10 1 4 4 8 -1
Çıktı
Çıktı, iki listenin istenen herhangi bir formata (dönüş değeri, stdio, vb.) Ayarlanmış kesişimini temsil eden tamsayıların liste benzeri bir şeklidir. Çıktının sıralanması gerekmez, ancak her zaman sıralanacak bir uygulama sağlayabilirsiniz. Çıktı geçerli bir sıralanmamış küme oluşturmalıdır (örn. Yinelenen değerler içermemelidir).
Örnek test senaryoları (çıktı sırasının önemli olmadığını unutmayın):
İlk iki satır girdi listeleridir, üçüncü satır çıktıdır. (empty)
boş listeyi gösterir.
(empty)
(empty)
(empty)
1000
(empty)
(empty)
3 1 2 4 3 1 1 1 1 3
3 1 -1 0 8 3 3 1
1 3
1 2 1
3 3 4
(empty)
puanlama
Bu kod golf; baytlarda en kısa cevap kazanır.
Standart halka delikleri yasaktır. Set benzeri işlemler için tasarlanmamış yerleşik özellikleri kullanabilirsiniz.
Yerleşik yasaklanmış özellikler:
- oluşturma / kopyaları kaldırma
- fark / kavşak / birleşim ayarlama
- Genel üyelik testi (örneğin
in
, Python'daki anahtar kelimeye benzerindexOf
işlevler, benzeri işlevler vb.). Python'unin
bu yapıyı oluşturmak için anahtar kelimeyi yeniden kullansa da, "listedeki her öğeyi önbelleğe al" yapılarının kullanımına izin verildiğini (diğer kısıtlamaların hiçbirini ihlal etmediği varsayılarak) unutmayın . - Bu yasaklanmış yerleşik "viral" dir, yani bu alt özelliklerden herhangi birini içeren daha büyük bir yerleşik varsa benzer şekilde yasaklanmıştır (örneğin bir listeye üyeliğe göre filtreleme).
Yukarıdaki listede bulunmayan tüm yerleşik öğelere izin verilir (ör. Sıralama, tamsayı eşitlik testi, listeye göre ekleme / kaldırma, filtreleme vb.).
Örneğin, aşağıdaki iki örnek parçacığı (Python benzeri kod) alın:
# prohibited: filters by testing if each value in tmpList is a member of listA
result = tmpList.filter(listA)
# ok: filtering by a lambda which manually iterates over listA and checks for equality
def my_in_func(val, slist):
for a in slist:
if(val == a):
return True
return False
result = filter(lambda v: my_in_func(val, listA), tmpList)
Bu set benzeri özelliklerden herhangi birini kendiniz uygulayabilirsiniz ve puanınıza göre sayılırlar.
Çözümünüz makul bir sürede tamamlanmalıdır (mesela, iki liste için her bir donanımda bir dakikadan az bir süre var ~ her biri uzunluk 1000).