Göreviniz verilen hedef dizeyi oluşturmaktır. Boş bir dize ile başlayarak, dizeniz istediğimizle aynı olana kadar karakter eklemeniz gerekir. Dizenizin sonuna x maliyetiyle bir karakter ekleyebilir veya dizenizi y maliyetiyle klonlayabilirsiniz. İstediğimiz bunu yapmanın en ucuz yoludur.
Test Durumları
targetString , appendcost, clonecost -> totalcost
"bb", 1, 2 -> 2
"bbbb", 2, 3 -> 7
"xzxpcxzxpy", 10, 11 -> 71
"abababab", 3, 5 -> 16
"abababab", 3, 11 -> 23
1
Maliyetler nasıl tanımlanır? Pozitif tamsayılar mı?
—
Arnauld
Ben sadece kod golf (en kısa kod) meydan okuma yapmak için düşünüyorum, bu yüzden kod meydan okuma ve puanlama bazı alternatif yol gösteren programlama etiketleri kaldırıldı.
—
xnor
Daha fazla test vakasına sahip olmanın yardımcı olacağını düşünüyorum, çünkü birisinin tüm test vakaları için çalışan iyi sezgisel özelliklere sahip bir program yazabileceği düşünülüyor, ancak genel olarak optimal değil. Özellikle, test durumlarının hiçbirinde başlangıçta olmayan birden fazla klon veya alt dizgilerin klonları yoktur. Sadece maliyet değiştirmenin çıktıyı değiştirdiği bir örneğe sahip olmanın iyi olacağını düşünüyorum.
—
xnor
Bu arada güzel ilk meydan okuma!
—
Outgolfer Erik
Tek bir harfin kopyalanması hala bir klonlama işlemi olarak kabul ediliyor mu?
—
digEmTüm