Supongamos que usamos las siguientes reglas para extraer una sola cadena de otra cadena, una que contiene solo caracteres imprimibles ASCII y se llama una *
cadena. Si la cadena se agota antes de que el proceso se detenga, eso es un error, y el resultado del proceso no está definido en ese caso:
- Empezar con
d=1, s=""
- Siempre que encuentres a
*
, multiplicad
por 2. Siempre que encuentres otro personaje, concatena al final des
y resta 1 ded
. Si ahorad=0
, deténgase y regreses
Ejemplos definidos :
d->d
769->7
abcd56->a
*abcd56->ab
**abcd56->abcd
*7*690->769
***abcdefghij->abcdefgh
Ejemplos indefinidos : (tenga en cuenta que la cadena vacía también sería uno de estos)
*7
**769
*7*
*a*b
*
Su trabajo es tomar una cadena y devolver la cadena más *
corta que produce esa cadena.
Ejemplos de programa :
7->7
a->a
ab->*ab
abcd->**abcd
769->*7*69
Su programa debe manejar cualquier cadena que contenga al menos un carácter y solo *
caracteres imprimibles que no sean ASCII. Nunca puede devolver cadenas para las cuales el proceso no está definido, ya que por definición no pueden producir NINGUNA cadena.
Se aplican las lagunas estándar y las reglas de E / S.
*
?