Ikasten.IO
Learning, Aprendiendo

Reto para “Código & Colegas” 4 abril, 2008

Un grupo de alumnos ha organizado para esta tarde en la FISS (Facultad de Informática de San Sebastián), un pequeño meeting bajo el nombre “Código & Colegas”, para compartir código, ideas y conocer a más gente interesada en programación. La verdad es que le podían haber dado más bombo a la iniciativa y ser más concretos en los objetivos, pero , ¡hey! están empezando y por tanto, más que criticar, mejor aplaudir y colaborar 🙂 Ahí va mi granito de arena: un reto de programación, cortito y entendible, de los que provocan necesidad de una buena dosis de cafeína para resolverlo:

Sean los Strings números y dígitos. Cada una de esas cadenas contiene únicamente dígitos entre 1 y 9, inclusive. Para cada ocurrencia de un dígito en el String dígitos , debes eliminar una única ocurrencia de ese dígito en números. Objetivo: terminar - tras haber eliminado los dígitos necesarios - con una cadena que represente el número más alto posible. Devolver este número como String

Ejemplo 1:
números: “12345”
dígitos: “513”
Devuelve: “24”
Si eliminamos los dígitos ‘5’, ‘3’, ‘1’ obtenemos el número 24.

Ejemplo 2:
números: “654321123456”
dígitos: “612534”
Devuelve: “654321”
(Eliminando de la segunda mitad de números )

Ejemplo 3:
números: “2654982765982365”
dígitos: “2345978”
devuelve: “698265265”

NOTA: el ejercicio está sacado de una de las competiciones de TopCoder. Que saber de dónde viene no provoque la pérdida de interés por intentar resolverlo por vuestra cuenta 😉

Categorias diariolinux SysAdmin
  • rubenrua dice:

    No es por joder pero el ultimo ejemplo esta mal.
    986665522 es mas grande

  • admin dice:

    rubenrua: una vez eliminados dígito a dígito los números de la cadena “number”, NO puedes reordenar la cadena “números”. Tu número 986665522 no cumple esa regla. De hecho, tras los dígitos 9 y 8 no existe ninguna cadena de tres ocurrencias del dígito 6 ..

  • Aritz dice:

    Bueno, la cosa es que el “Código&Colegas” surgió este martes a la noche como producto de una conversación entre caymn y yo. Al menos la primera edición pretendía ser un acto en petit comité, más que nada gente que ya nos conociéramos de hace tiempo para crear un núcleo duro (sobre todo de mollera) sobre el que ir construyendo una comunidad que se pueda reunir periódicamente con cierta solidez. También hay que decir que como organizamos este evento de una manera un tanto precipitada, no queríamos que la gente que pudiera venir de fuera se sintiera desanimada si no salía bien.

    Así pues, desde la “organización” de Código&Colegas te agradecemos el aporte y queremos que sepas que haremos cuanto esté en nuestras manos por que esto salga hacia adelante de la mejor manera posible. Te aseguramos que si este C&C sale bien (que seguro que lo hará) serás nuestro invitado de honor en el siguiente por el apoyo que nos has dado =)

    Para terminar sólo me queda decir que todo el mundo es bienvenido siempre y cuando cumpla con la siguiente premisa: entender que la organización del acto ha sido un poco precipitada pero que teníamos que hacerlo, nuestros cuerpos nos lo pedían.

  • Ikarus dice:

    Epa!

    ¡Qué bueno Juanan que nos pones estas cositas para hacer!
    Menos mal que has comentado que no se podía reordenar la cadena de dígitos… 😀 Yo ya estaba reordenándolos… Ya no se si es mi lógica la que anda un poco más pa´llá que pa´cá, pero después de 3 horitas y media (ahora son las 6.40 de la mañana) ya he terminado con esto.
    Eso si, me da que he sido algo burro por utilizar char[] en vez de string, per me estaba volviendo loco con los string aaargh!!! xD

  • Ikarus dice:

    Epa!
    Que conste que el algoritmo lo tenía en un par de minutos, pero la implementación se me resistía 🙁 Todo porque en la comparación me olvidaba salir :-O
    Estas cosas no se pueden hacer a estas horas xD

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *