Giriş
Bu zorluk çıkarmadan fazla sayıda bulunmasında meydana gelmektedir y orijinal sayı basamak n sahiptir x basamak.
Varsayalım ki y=2 n=5263 x=4
, y = 2 haneyi kaldıran rakamlar:
[52, 56, 53, 26, 23, 63]
Bu nedenle, en büyük sayı 63
bu örneğin çıktısı olmalıdır.
Başka bir mantık şöyle olacaktır: Her bir y için, soldan sağa doğru sağ sonraki basamağın büyük olduğu rakamı arayın, sonra kaldırın, eşleşme olmadığında son y rakamlarını kaldırın .
Açıklamak için kullanarak y=3 n=76751432 x=8
:
y=3
76751432
-^------ remove 6 because right next 7 is greater
y=2
7751432
---^--- remove 1 because right next 4 is greater
y=1
775432
-----^ the search failed, then remove last y digits
result = 77543
Yukarıda açıklanan her iki yöntemde de çalışır .. tabii ki başka bir yöntem de kullanabilirsiniz :)
Meydan okuma
N sayısında 8 basamaktan fazla sayı olmaz ve y her zaman sıfırdan büyük ve x'ten küçük olur .
Kesin giriş biçiminden kaçınmak için, değerleri kullanabilirsiniz: y n x
tercih ettiğiniz yol: işlev, ham girdideki parametreler veya geçerli başka bir yöntem. Sadece cevabında nasıl yaptığını söylemeyi unutma.
Çıktı, sonuç numarası olmalıdır.
Bu kod golf , bayt cinsinden en kısa cevabı kazanır.
Örnek Giriş ve Çıkış
Yine: çok sıkı olmanıza gerek yok :)
4 1789823 7 -> 983
1 54132 5 -> 5432
3 69314 5 -> 94
2 51794 5 -> 794
Düzenle
Sorunu çözmek için bazılarınızın x değerine ihtiyaç duymayabileceği gerçeğini yansıtacak şekilde girdi sırasını değiştirdim . x şimdi isteğe bağlı bir değerdir.
x
de bunun yararsız bir bilgi olduğunu düşünüyoruz.
x
girdi olarak sahip olmanın kodu kısaltabileceğini düşünüyorum. (Konuya ilişkin örnek: Julia cevabım.)