comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[RETO] Ordenar caracteres (Dificultad=media)

  • 13 Respuestas
  • 4204 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado LKI

  • *
  • Underc0der
  • Mensajes: 61
  • Actividad:
    1.67%
  • Reputación 0
  • |Un día sin aprender nada, es un día perdido..|
    • Ver Perfil
    • Email
« en: Agosto 20, 2015, 10:04:11 pm »

Ordenar de mayor a menor según cantidad de apariciones las siguientes letras del alfabeto. Si empatan, ordenar alfabéticamente. Dar la respuesta en minúscula.

  • La cadena es la siguiente:

Código: You are not allowed to view links. Register or Login
qanwPVEAwnmSViNjTOLZPRRSaTAECnbArUjPmELcsWhdVMXYfdYLUGLpjLdOMdzvAEgfhXWNvRJZqMhlwocRPHKcwbUFJVjBjmLOwPVqjoYHLTtixQAnBHwuvfxDMPnAbpHBRNYTpKSzxLTWOusljvXidQjqbqjgcvpFMLbPPOkHdTTJbkswfdEeeFTbllerqvbFMpO
Se puede usar cualquier algoritmo y cualquier lenguaje!!

PD: Para que no se quejen el reto oficial es de la siguiente pagina You are not allowed to view links. Register or Login y siempre cambia solo me pareció un buen reto nada más que eso.

Ganadores:
  • 79137913
  • MF
« Última modificación: Septiembre 25, 2015, 06:08:23 pm por LKI »
Ser mejor cada día es mi meta

 =LKI=

Desconectado fermino

  • *
  • Underc0der
  • Mensajes: 330
  • Actividad:
    0%
  • Reputación 1
  • Aprendiz de todo, maestro de nada...
    • Ver Perfil
    • In The Middle Of Knowledge
« Respuesta #1 en: Agosto 21, 2015, 01:51:00 am »
Array con abc...xyz, strtolower, for, substr_count y listo (?

Sino, se puede hacer sin usar el array y substr_count con unos cuantos bucles, fijandose qué caracteres hay, etc...

Saludos!
-fermino-
Visita mi blog: You are not allowed to view links. Register or Login.

Desconectado rollth

  • *
  • Underc0der
  • Mensajes: 875
  • Actividad:
    0%
  • Reputación 16
  • El conocimiento es libre.
    • Ver Perfil
    • Whateversec
    • Email
  • Twitter: @RoloMijan
« Respuesta #2 en: Agosto 21, 2015, 05:27:50 am »
Cuando tenga mi ordenador lo hago, pero no se si lo he entendido bien, hay que hacer un Script que te cuenta cuantas letras hay de cada letra (independientemente de si está en mayúscula o minúscula) y dar un output en plan A(si es la que más veces había) C (si es la segunda) y así continuado?

Rollth
Buen hacker mejor persona.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Desconectado 79137913

  • *
  • Co Admin
  • Mensajes: 627
  • Actividad:
    1.67%
  • Reputación 10
  • 4 Esquinas
    • Ver Perfil
    • Doors.Party
    • Email
  • Skype: fg_mdq@hotmail.com
« Respuesta #3 en: Agosto 21, 2015, 10:00:42 am »
HOLA!!!

Al fin retos de programacion!

En que lenguaje queres la respuesta?

GRACIAS POR LEER!!!
"Algunos creen que soy un bot, puede que tengan razon"
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

*Shadow Scout Team*                                                   You are not allowed to view links. Register or Login

Desconectado sancakoky

  • *
  • Underc0der
  • Mensajes: 5
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #4 en: Agosto 21, 2015, 10:35:42 am »
Pero porqué no leeis?
Lo dice bien claro. En cualquier lenguaje y primero las que mas se repiten y si empatan en orden alfabético.

Yo solo lo he leído una vez y me parece que se explica como el agua, no entiendo como os surgen dudas o preguntáis en que lenguaje si lo dice.

Desconectado 79137913

  • *
  • Co Admin
  • Mensajes: 627
  • Actividad:
    1.67%
  • Reputación 10
  • 4 Esquinas
    • Ver Perfil
    • Doors.Party
    • Email
  • Skype: fg_mdq@hotmail.com
« Respuesta #5 en: Agosto 21, 2015, 11:26:10 am »
HOLA!!!

Aqui mi solucion[VBS] por que no tengo ningun compilador aca:

Código: Visual Basic
  1. Dim ABC (25)
  2. Cadena = LCase(InputBox("Inserte cadena a analizar","RETO"))
  3. For X = 1 To Len (Cadena)
  4.     Letra = mid(Cadena,x,1)
  5.     NumLetra = asc(Letra)-97
  6.     ABC(NumLetra) = ABC(NumLetra) & Letra
  7. Next
  8.  
  9. For x = 24 To 0 Step -1
  10.     For y = 0 to x
  11.         If Len(ABC(y)) > Len(ABC(y + 1)) Then
  12.             temp = ABC(y+1)
  13.             ABC(y + 1) = ABC(y)
  14.             ABC(y) = temp
  15.         End If
  16.     Next
  17. Next
  18.  
  19. Do
  20.     Flag = True
  21.     For x = 0 to 24
  22.         If Len(ABC(x))=Len(abc(x+1)) Then
  23.             If Asc(Right(ABC(x),1)) < Asc(Right(ABC(x + 1),1)) Then
  24.                 temp = ABC(x)
  25.                 ABC(x) = ABC(x + 1)
  26.                 ABC(x + 1) = temp
  27.                 Flag = Flase
  28.             End If
  29.         End If
  30.     Next
  31. Loop Until Flag
  32.  
  33. For X = 0 to 25
  34.     Out = Out & RIGHT(ABC(x),1)
  35. Next
  36.  
  37. Inputbox "Resultado", "RETO", strreverse(Out)
  38.  

Para la cadena que colocas aqui sera:

lpjbvwmtadefhnoqrsxcukyzgi



@You are not allowed to view links. Register or Login

Perdon, no lo vi, debi haberlo salteado sin darme cuenta, pero esas no son formas de contestar, intenta mantener el respeto que es fundamental para el foro.

GRACIAS POR LEER!!!
« Última modificación: Agosto 21, 2015, 01:48:15 pm por 79137913 »
"Algunos creen que soy un bot, puede que tengan razon"
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

*Shadow Scout Team*                                                   You are not allowed to view links. Register or Login

Desconectado LKI

  • *
  • Underc0der
  • Mensajes: 61
  • Actividad:
    1.67%
  • Reputación 0
  • |Un día sin aprender nada, es un día perdido..|
    • Ver Perfil
    • Email
« Respuesta #6 en: Agosto 21, 2015, 04:48:08 pm »
You are not allowed to view links. Register or Login
Cuando tenga mi ordenador lo hago, pero no se si lo he entendido bien, hay que hacer un Script que te cuenta cuantas letras hay de cada letra (independientemente de si está en mayúscula o minúscula) y dar un output en plan A(si es la que más veces había) C (si es la segunda) y así continuado?

Ejemplo la cadena es esta = "BBAAba";  Es indiferente las mayusculas y minusculas se cuenta como la misma letra
 b=> 3
 a=>3
solucion => ab
Empataron entonces hay que devolverlos en orden alfabético y siempre dar la solución en minúscula.
« Última modificación: Agosto 21, 2015, 10:16:18 pm por LKI »
Ser mejor cada día es mi meta

 =LKI=

Desconectado LKI

  • *
  • Underc0der
  • Mensajes: 61
  • Actividad:
    1.67%
  • Reputación 0
  • |Un día sin aprender nada, es un día perdido..|
    • Ver Perfil
    • Email
« Respuesta #7 en: Agosto 21, 2015, 11:45:02 pm »
You are not allowed to view links. Register or Login
HOLA!!!

Aqui mi solucion[VBS] por que no tengo ningun compilador aca:

Código: Visual Basic
  1. Dim ABC (25)
  2. Cadena = LCase(InputBox("Inserte cadena a analizar","RETO"))
  3. For X = 1 To Len (Cadena)
  4.     Letra = mid(Cadena,x,1)
  5.     NumLetra = asc(Letra)-97
  6.     ABC(NumLetra) = ABC(NumLetra) & Letra
  7. Next
  8.  
  9. For x = 24 To 0 Step -1
  10.     For y = 0 to x
  11.         If Len(ABC(y)) > Len(ABC(y + 1)) Then
  12.             temp = ABC(y+1)
  13.             ABC(y + 1) = ABC(y)
  14.             ABC(y) = temp
  15.         End If
  16.     Next
  17. Next
  18.  
  19. Do
  20.     Flag = True
  21.     For x = 0 to 24
  22.         If Len(ABC(x))=Len(abc(x+1)) Then
  23.             If Asc(Right(ABC(x),1)) < Asc(Right(ABC(x + 1),1)) Then
  24.                 temp = ABC(x)
  25.                 ABC(x) = ABC(x + 1)
  26.                 ABC(x + 1) = temp
  27.                 Flag = Flase
  28.             End If
  29.         End If
  30.     Next
  31. Loop Until Flag
  32.  
  33. For X = 0 to 25
  34.     Out = Out & RIGHT(ABC(x),1)
  35. Next
  36.  
  37. Inputbox "Resultado", "RETO", strreverse(Out)
  38.  

Para la cadena que colocas aqui sera:

lpjbvwmtadefhnoqrsxcukyzgi



@You are not allowed to view links. Register or Login

Perdon, no lo vi, debi haberlo salteado sin darme cuenta, pero esas no son formas de contestar, intenta mantener el respeto que es fundamental para el foro.

GRACIAS POR LEER!!!

Es correcto felicitaciones!!
Ser mejor cada día es mi meta

 =LKI=

Desconectado sancakoky

  • *
  • Underc0der
  • Mensajes: 5
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #8 en: Agosto 22, 2015, 11:26:31 am »
Tienes razon @You are not allowed to view links. Register or Login y pido disculpas. No se si tenia un mal día o que me paso por que a todos nos puede pasar que nos saltemos algo al leer por prisas o por lo que sea. Y los demas tambien pido disculpas por la contestación tan desagradable.

Bueno comentar que llevo toda la mañana con este reto y no he tenido huev.s de conseguirlo. Dar las gracias al compañero @You are not allowed to view links. Register or Login y haber si se anima él o alguien mas a subir mas retos de este tipo.

Voy a pasarme por el subforo de python haber si alguien me hecha una mano con el dichoso reto ya que veo que me va a quitar el sueño y no lo consigo.

SUERTE PARA QUIEN LO INTENTE!
« Última modificación: Agosto 22, 2015, 11:28:20 am por sancakoky »

Desconectado rollth

  • *
  • Underc0der
  • Mensajes: 875
  • Actividad:
    0%
  • Reputación 16
  • El conocimiento es libre.
    • Ver Perfil
    • Whateversec
    • Email
  • Twitter: @RoloMijan
« Respuesta #9 en: Agosto 22, 2015, 04:48:26 pm »
You are not allowed to view links. Register or Login
Tienes razon @You are not allowed to view links. Register or Login y pido disculpas. No se si tenia un mal día o que me paso por que a todos nos puede pasar que nos saltemos algo al leer por prisas o por lo que sea. Y los demas tambien pido disculpas por la contestación tan desagradable.

Bueno comentar que llevo toda la mañana con este reto y no he tenido huev.s de conseguirlo. Dar las gracias al compañero @You are not allowed to view links. Register or Login y haber si se anima él o alguien mas a subir mas retos de este tipo.

Voy a pasarme por el subforo de python haber si alguien me hecha una mano con el dichoso reto ya que veo que me va a quitar el sueño y no lo consigo.

SUERTE PARA QUIEN LO INTENTE!

Yo lo haré mañana que ya tendré mi pc (por fin), puedes mirar el código de @You are not allowed to view links. Register or Login para hacerte una idea, o el mío cuando lo haga mañana, saludos.

Rollth
Buen hacker mejor persona.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Desconectado rochesto

  • *
  • Underc0der
  • Mensajes: 14
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #10 en: Septiembre 16, 2015, 03:50:44 pm »
Buenas,  aprovechando el reto, me he puesto al lio de los algoritmos de ordenación.
Aquí os dejo el código con los algoritmos: selección, insercción, shell y quicksort.

Estoy aprendiendo por lo que seguro que hay muchos errores , no sean crueles :o  ;D


Código: C++
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. void seleccion(string&);
  7. void insercion(string&);
  8. void ordenacion_shell (string &);
  9. void quicksort( string&, int, int );
  10.  
  11. int main()
  12. {
  13.  
  14.     string str = "qanwPVEAwnmSViNjTOLZPRRSaTAErCnbArUjPmELcsWhdVMXYfdYLUGLpjLdOMdzvAEgfhXWNvRJZqMhlwocRPHKcwbUFJVjBjmcsWhdVMXYfdYLUGLpjLdOMdzvAEgfhXWNvRJZqMhlwocRPHK";
  15.  
  16. //Cambiar a minusculas  todas las letras
  17.     string::size_type l;
  18.     for (l = 0; l < str.length(); l++)
  19.     {
  20.         str[l] = tolower(str[l]);
  21.     }
  22. //~ Fin minusculas
  23.  
  24. //METODOS DE ORDENACION
  25.  
  26.         //Ordenación por selección
  27.     //seleccion(str);
  28.  
  29.         //Ordenación por inserción
  30.     //insercion(str);
  31.  
  32.         //Ordenación por shell
  33.     //ordenacion_shell(str);
  34.  
  35.         //Ordenación rápida QUICKSOFT
  36.     quicksort(str, 0, str.length()-1);
  37.  
  38. //~ FIN METODOS ORDENACION
  39.  
  40.  
  41. //Contador
  42.     int contador = 0;
  43.     char letra = 'a';
  44.  
  45.     for (int i = 0; i < str.length(); i++)
  46.     {
  47.         if(str[i] == str[i+1]){
  48.             contador++;
  49.         }else{
  50.             cout << letra << ": " << contador+1 << endl;
  51.             contador = 0;
  52.             letra++;
  53.         }
  54.     }
  55. //~ Fin contador
  56.  
  57.     return 0;
  58. }
  59.  
  60. //Ordenación por selección
  61. void seleccion(string &str){
  62.  
  63.     string::size_type i, j, k;
  64.     for(i = 0; i < str.length(); i++){
  65.         for(k= i, j = i +1; j < str.length(); j++){
  66.  
  67.             if (str[j] < str[k]){
  68.  
  69.                 char aux = str[i];
  70.                 str[i] = str[j];
  71.                 str[j] = aux;
  72.  
  73.             }
  74.         }
  75.     }
  76. }
  77.  
  78. //Ordenacion por insercion
  79. void insercion(string &str)
  80. {
  81.     char tmp;
  82.     int j = 0;
  83.     for (int i = 1; i < str.length(); i++){
  84.         tmp = str[i];
  85.         j = i -1;
  86.         while( j>=0 && tmp < str[j])
  87.         {
  88.             str[j+1] = str[j];
  89.             j--;
  90.         }
  91.         str[j+1] = tmp;
  92.     }
  93. }
  94.  
  95.  
  96. //Ordenacion por shell
  97. void ordenacion_shell (string &str)
  98. {
  99.     int incr = str.length()/2, p, j;
  100.     char tmp;
  101.     do
  102.     {
  103.         for (p = incr; p < str.length(); p++)
  104.         {
  105.             tmp = str[p];
  106.             j = p - incr;
  107.             while ((j >= 0) && (tmp < str[j]))
  108.             {
  109.                 str[j + incr] = str[j];
  110.                 j -= incr;
  111.             }
  112.             str[j + incr] = tmp;
  113.         }
  114.         incr /= 2;
  115.     }
  116.     while (incr > 0);
  117. }
  118.  
  119.  
  120. //Ordenacion rapida QUICKSORT
  121. void quicksort(string &array, int start, int end)
  122. {
  123.     int pivote, left, right;
  124.     char temp;
  125.  
  126.     if (start < end){
  127.        
  128.  
  129.         pivote = start;
  130.         left = start;
  131.         right = end;
  132.         while(left < right)
  133.         {
  134.             while(array[right] > array[pivote]){
  135.                 right--;
  136.             }
  137.             while(left<right && array[left] <= array[pivote]){
  138.                 left++;
  139.             }
  140.  
  141.             if (left < right){
  142.                 temp = array[left];
  143.                 array[left] = array[right];
  144.                 array[right] = temp;
  145.             }
  146.         }
  147.  
  148.         temp = array[right];
  149.         array[right] = array[pivote];
  150.         array[pivote] = temp;
  151.  
  152.         pivote = right;
  153.  
  154.  
  155.         quicksort(array, start, pivote-1);
  156.         quicksort(array, pivote+1, end);
  157.     }
  158. }
  159.  
  160.  

Desconectado 79137913

  • *
  • Co Admin
  • Mensajes: 627
  • Actividad:
    1.67%
  • Reputación 10
  • 4 Esquinas
    • Ver Perfil
    • Doors.Party
    • Email
  • Skype: fg_mdq@hotmail.com
« Respuesta #11 en: Septiembre 17, 2015, 01:31:09 pm »
HOLA!!!

@You are not allowed to view links. Register or Login :

No sere duro, solo te dire que en los retos se estila hacer una UNICA funcion sin funciones externas, por que es la mejor forma para aprender.

GRACIAS POR LEER!!!
"Algunos creen que soy un bot, puede que tengan razon"
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

*Shadow Scout Team*                                                   You are not allowed to view links. Register or Login

Desconectado mf

  • *
  • Underc0der
  • Mensajes: 1
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #12 en: Septiembre 24, 2015, 11:17:19 am »
buenas,

Código: Python
  1. #stringtoConvert= raw_input("\n[+] Reto underc0de\nEnter string, please: ")
  2. stringtoConvert= "qanwPVEAwnmSViNjTOLZPRRSaTAECnbArUjPmELcsWhdVMXYfdYLUGLpjLdOMdzvAEgfhXWNvRJZqMhlwocRPHKcwbUFJVjBjmLOwPVqjoYHLTtixQAnBHwuvfxDMPnAbpHBRNYTpKSzxLTWOusljvXidQjqbqjgcvpFMLbPPOkHdTTJbkswfdEeeFTbllerqvbFMpO"
  3. stringtC= stringtoConvert.lower()
  4. diccio= {}
  5. resultado= ""
  6. dicOrdenado= []
  7. cMax= 0
  8.  
  9. for a in stringtC:
  10.         if not diccio.has_key(a):
  11.                 diccio[a] = 1
  12.         elif diccio.has_key(a):
  13.                 cont = (diccio[a]) + 1
  14.                 diccio[a] = cont
  15.         if diccio[a] > cMax:
  16.                 cMax = diccio[a]
  17. ldic= diccio.items()
  18. cDin= cMax
  19.  
  20. while len(dicOrdenado) != len(diccio):
  21.         cont= 0
  22.         for letra in ldic:
  23.                 if letra[1] == cDin:
  24.                         dicOrdenado.append(letra)
  25.                 cont= cont + 1
  26.         cDin = cDin - 1
  27. cDin= cMax
  28.  
  29. while len(resultado) != len(dicOrdenado):
  30.         mismoEquipo= []
  31.         for letra in dicOrdenado:
  32.                 if letra[1] == cDin:
  33.                         mismoEquipo.append(letra[0])
  34.                         mismoEquipo= sorted(mismoEquipo)
  35.         for leter in mismoEquipo:
  36.                 resultado= resultado +leter
  37.         cDin = cDin - 1
  38. print resultado
  39.  

sl2 :)

Desconectado LKI

  • *
  • Underc0der
  • Mensajes: 61
  • Actividad:
    1.67%
  • Reputación 0
  • |Un día sin aprender nada, es un día perdido..|
    • Ver Perfil
    • Email
« Respuesta #13 en: Septiembre 25, 2015, 06:07:27 pm »
You are not allowed to view links. Register or Login
buenas,

Código: Python
  1. #stringtoConvert= raw_input("\n[+] Reto underc0de\nEnter string, please: ")
  2. stringtoConvert= "qanwPVEAwnmSViNjTOLZPRRSaTAECnbArUjPmELcsWhdVMXYfdYLUGLpjLdOMdzvAEgfhXWNvRJZqMhlwocRPHKcwbUFJVjBjmLOwPVqjoYHLTtixQAnBHwuvfxDMPnAbpHBRNYTpKSzxLTWOusljvXidQjqbqjgcvpFMLbPPOkHdTTJbkswfdEeeFTbllerqvbFMpO"
  3. stringtC= stringtoConvert.lower()
  4. diccio= {}
  5. resultado= ""
  6. dicOrdenado= []
  7. cMax= 0
  8.  
  9. for a in stringtC:
  10.         if not diccio.has_key(a):
  11.                 diccio[a] = 1
  12.         elif diccio.has_key(a):
  13.                 cont = (diccio[a]) + 1
  14.                 diccio[a] = cont
  15.         if diccio[a] > cMax:
  16.                 cMax = diccio[a]
  17. ldic= diccio.items()
  18. cDin= cMax
  19.  
  20. while len(dicOrdenado) != len(diccio):
  21.         cont= 0
  22.         for letra in ldic:
  23.                 if letra[1] == cDin:
  24.                         dicOrdenado.append(letra)
  25.                 cont= cont + 1
  26.         cDin = cDin - 1
  27. cDin= cMax
  28.  
  29. while len(resultado) != len(dicOrdenado):
  30.         mismoEquipo= []
  31.         for letra in dicOrdenado:
  32.                 if letra[1] == cDin:
  33.                         mismoEquipo.append(letra[0])
  34.                         mismoEquipo= sorted(mismoEquipo)
  35.         for leter in mismoEquipo:
  36.                 resultado= resultado +leter
  37.         cDin = cDin - 1
  38. print resultado
  39.  

sl2 :)


Es correcto !! Felicitaciones !!  ;D
Ser mejor cada día es mi meta

 =LKI=

 

¿Te gustó el post? COMPARTILO!



Reto "Crackea el Menú"

Iniciado por Zekro

Respuestas: 2
Vistas: 1651
Último mensaje Noviembre 29, 2012, 05:57:24 pm
por Zekro
[Solucionario] Reto "Descubre la frase"

Iniciado por q3rv0

Respuestas: 10
Vistas: 3821
Último mensaje Agosto 13, 2012, 04:24:40 pm
por hdbreaker
Un Crackme que hice hace tiempo, haber si alguien lo resuelve [RETO]

Iniciado por LauBuru

Respuestas: 2
Vistas: 1881
Último mensaje Abril 04, 2016, 12:07:45 pm
por rush
[RETO] Wargame Cifrado - Nivel facil/medio

Iniciado por fermino

Respuestas: 12
Vistas: 3454
Último mensaje Septiembre 25, 2014, 06:25:33 pm
por fermino
[RETO] Desofusca mi codigo y dime por que siempre gano ;)

Iniciado por 79137913

Respuestas: 9
Vistas: 3664
Último mensaje Febrero 15, 2013, 07:05:19 pm
por alexander1712