Su tarea es crear la cadena objetivo dada. Comenzando con una cadena que está vacía, tendrá que agregarle caracteres, hasta que su cadena sea la misma que queremos. Puede agregar un carácter al final de su cadena con costo x, o puede clonar su cadena con costo y. Lo que queremos es la forma más barata de hacer esto.
Casos de prueba
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
¿Cómo se definen los costos? ¿Son enteros positivos?
—
Arnauld
Creo que solo está buscando hacer un desafío de código de golf (código más corto), así que eliminé las etiquetas de desafío de código y rompecabezas de programación que indican alguna forma alternativa de puntuación.
—
xnor
Creo que ayudaría tener más casos de prueba, ya que parece probable que alguien pueda escribir un programa que tenga buenas heurísticas que funcionen para todos los casos de prueba pero que no sean óptimos en general. En particular, ninguno de los casos de prueba tiene múltiples clones o clones de subcadenas que no están al principio. Creo que también sería bueno tener un ejemplo en el que cambiar solo los costos cambie la producción.
—
xnor
Bonito primer desafío, por cierto!
—
Erik the Outgolfer
¿La clonación de una sola letra todavía se considera una operación de clonación?
—
digEmAll el