Bu fıkra şu ilginç alışverişi içerir:
"Güzel Fred," diye araya girdi Avi. "Peki yinelenen girişleri önlemek için bunu nasıl değiştirirdiniz?"
"Ah, sadece bunu negatif olana değiştir."
Bu iddia bağlamda doğru olmasa da, bunun mantıklı olan bazı makul kodları olup olmadığını merak ediyorum.
Buradaki zorluk, bu kriterlere uyan kod (bir program, bir işlev, ne olursa olsun) yazmaktır:
- Kopyaları tutarak iki giriş listesini bir araya getirir. İsteğe bağlı olarak tamsayı olduklarını ve / veya listelerin kendilerinin benzersiz olduğunu varsayabilirsiniz. Tamsayıların pozitif olduğunu varsayamazsınız (bunu yapan tek cevap büyükbabadır).]
- Kodun bir yerinde değişmez "1" görünür. Bunu değişmez "-1" olarak değiştirirseniz, kod aynı şeyi yinelemeleri kaldırarak yapar.
- Kod sadece 1 / -1'den ayrılmaz. Örneğin, aramıyoruz
if (1 < 1) removeDuplicates()
veya[do_nothing, merge_with_dups, merge_without_dups][1].call()
.
Giriş ve çıkış seçtiğiniz herhangi bir makul biçimde olabilir. Bir örnek olabilir
[1,2],[2,3]->[1,2,2,3]
işaret değişmeden önce ve [1,2,3]
sonra.
Bu bir popülerlik yarışması. Gösteriş yapmak istemiyorsanız, kod golf değildir . Yaklaşık iki hafta içinde en yüksek oyu alan cevabı kabul edeceğim.
-1
mıdır?