Ваше завдання - створити заданий цільовий рядок. Починаючи з порожнього рядка, вам доведеться додати символи до нього, поки ваша рядок не буде такою, як ми хочемо. Ви можете додати символ до кінця рядка вартістю x, або можете клонувати рядок вартістю y. Те, що ми хочемо, це найдешевший спосіб зробити це.
Випробування
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
Як визначаються витрати? Чи є натуральними цілими числами?
—
Арнольд
Я думаю, що ви просто хочете зробити кодовий гольф (найкоротший код) викликом, тому я зняв виклик коду та програмування головоломки, які вказують на якийсь альтернативний спосіб підрахунку.
—
xnor
Я думаю, що це допомогло б мати більше тестових випадків, оскільки, мабуть, хтось міг би написати програму з хорошою евристикою, яка працює для всіх тестових випадків, але в цілому не є оптимальною. Зокрема, жоден із тестових випадків не має декількох клонів або клонів підрядків, які не є на початку. Я думаю, також було б добре мати приклад, коли зміна лише витрат змінює вихід.
—
xnor
Приємний перший виклик, до речі!
—
Ерік Аутгольфер
Чи клонування однієї літери все ще вважається операцією з клонуванням?
—
digEmAll