This site uses cookies own and third. If you continue to browse consider to accept the use of cookies. OK More Info.

[RETO] Ordenar caracteres (Dificultad=media)

  • 13 Replies
  • 9510 Views

0 Members and 1 Guest are viewing this topic.

Offline LKI

  • *
  • Underc0der
  • Posts: 77
  • Actividad:
    0%
  • Reputación 0
  • |Un día sin aprender nada, es un día perdido..|
    • View Profile
    • Email

[RETO] Ordenar caracteres (Dificultad=media)

  • on: August 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:

Code: 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
« Last Edit: September 25, 2015, 06:08:23 pm by LKI »
Ser mejor cada día es mi meta

 =LKI=

Offline fermino

  • *
  • Ex-Staff
  • *****
  • Posts: 331
  • Actividad:
    0%
  • Reputación 1
  • Aprendiz de todo, maestro de nada...
    • View Profile
    • In The Middle Of Knowledge

Re:[RETO] Ordenar caracteres (Dificultad=media)

  • on: August 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.

Offline rollth

  • *
  • Ex-Staff
  • *****
  • Posts: 889
  • Actividad:
    0%
  • Reputación 16
  • El conocimiento es libre.
  • Twitter: @RoloMijan
    • View Profile
    • Whateversec
    • Email

Re:[RETO] Ordenar caracteres (Dificultad=media)

  • on: August 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

Offline 79137913

  • *
  • Co Admin
  • Posts: 714
  • Actividad:
    0%
  • Country: 00
  • Reputación 7913
  • 4 Esquinas
    • View Profile
    • Doors.Party
    • Email

Re:[RETO] Ordenar caracteres (Dificultad=media)

  • on: August 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 Scouts Team*                                                   You are not allowed to view links. Register or Login

Offline sancakoky

  • *
  • Underc0der
  • Posts: 5
  • Actividad:
    0%
  • Reputación 0
    • View Profile
    • Email

Re:[RETO] Ordenar caracteres (Dificultad=media)

  • on: August 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.

Offline 79137913

  • *
  • Co Admin
  • Posts: 714
  • Actividad:
    0%
  • Country: 00
  • Reputación 7913
  • 4 Esquinas
    • View Profile
    • Doors.Party
    • Email

Re:[RETO] Ordenar caracteres (Dificultad=media)

  • on: August 21, 2015, 11:26:10 am
HOLA!!!

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

Code: (vb) You are not allowed to view links. Register or Login
Dim ABC (25)
Cadena = LCase(InputBox("Inserte cadena a analizar","RETO"))
For X = 1 To Len (Cadena)
    Letra = mid(Cadena,x,1)
    NumLetra = asc(Letra)-97
    ABC(NumLetra) = ABC(NumLetra) & Letra
Next

For x = 24 To 0 Step -1
    For y = 0 to x
        If Len(ABC(y)) > Len(ABC(y + 1)) Then
            temp = ABC(y+1)
            ABC(y + 1) = ABC(y)
            ABC(y) = temp
        End If
    Next
Next

Do
    Flag = True
    For x = 0 to 24
        If Len(ABC(x))=Len(abc(x+1)) Then
            If Asc(Right(ABC(x),1)) < Asc(Right(ABC(x + 1),1)) Then
                temp = ABC(x)
                ABC(x) = ABC(x + 1)
                ABC(x + 1) = temp
                Flag = Flase
            End If
        End If
    Next
Loop Until Flag

For X = 0 to 25
    Out = Out & RIGHT(ABC(x),1)
Next

Inputbox "Resultado", "RETO", strreverse(Out)

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!!!
« Last Edit: August 21, 2015, 01:48:15 pm by 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 Scouts Team*                                                   You are not allowed to view links. Register or Login

Offline LKI

  • *
  • Underc0der
  • Posts: 77
  • Actividad:
    0%
  • Reputación 0
  • |Un día sin aprender nada, es un día perdido..|
    • View Profile
    • Email

Re:[RETO] Ordenar caracteres (Dificultad=media)

  • on: August 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.
« Last Edit: August 21, 2015, 10:16:18 pm by LKI »
Ser mejor cada día es mi meta

 =LKI=

Offline LKI

  • *
  • Underc0der
  • Posts: 77
  • Actividad:
    0%
  • Reputación 0
  • |Un día sin aprender nada, es un día perdido..|
    • View Profile
    • Email

Re:[RETO] Ordenar caracteres (Dificultad=media)

  • on: August 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:

Code: (vb) You are not allowed to view links. Register or Login
Dim ABC (25)
Cadena = LCase(InputBox("Inserte cadena a analizar","RETO"))
For X = 1 To Len (Cadena)
    Letra = mid(Cadena,x,1)
    NumLetra = asc(Letra)-97
    ABC(NumLetra) = ABC(NumLetra) & Letra
Next

For x = 24 To 0 Step -1
    For y = 0 to x
        If Len(ABC(y)) > Len(ABC(y + 1)) Then
            temp = ABC(y+1)
            ABC(y + 1) = ABC(y)
            ABC(y) = temp
        End If
    Next
Next

Do
    Flag = True
    For x = 0 to 24
        If Len(ABC(x))=Len(abc(x+1)) Then
            If Asc(Right(ABC(x),1)) < Asc(Right(ABC(x + 1),1)) Then
                temp = ABC(x)
                ABC(x) = ABC(x + 1)
                ABC(x + 1) = temp
                Flag = Flase
            End If
        End If
    Next
Loop Until Flag

For X = 0 to 25
    Out = Out & RIGHT(ABC(x),1)
Next

Inputbox "Resultado", "RETO", strreverse(Out)

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=

Offline sancakoky

  • *
  • Underc0der
  • Posts: 5
  • Actividad:
    0%
  • Reputación 0
    • View Profile
    • Email

Re:[RETO] Ordenar caracteres (Dificultad=media)

  • on: August 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!
« Last Edit: August 22, 2015, 11:28:20 am by sancakoky »

Offline rollth

  • *
  • Ex-Staff
  • *****
  • Posts: 889
  • Actividad:
    0%
  • Reputación 16
  • El conocimiento es libre.
  • Twitter: @RoloMijan
    • View Profile
    • Whateversec
    • Email

Re:[RETO] Ordenar caracteres (Dificultad=media)

  • on: August 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

Offline rochesto

  • *
  • Underc0der
  • Posts: 14
  • Actividad:
    0%
  • Reputación 0
    • View Profile
    • Email

Re:[RETO] Ordenar caracteres (Dificultad=media)

  • on: September 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


Code: (cpp) You are not allowed to view links. Register or Login
#include <iostream>
#include <string>

using namespace std;

void seleccion(string&);
void insercion(string&);
void ordenacion_shell (string &);
void quicksort( string&, int, int );

int main()
{

    string str = "qanwPVEAwnmSViNjTOLZPRRSaTAErCnbArUjPmELcsWhdVMXYfdYLUGLpjLdOMdzvAEgfhXWNvRJZqMhlwocRPHKcwbUFJVjBjmcsWhdVMXYfdYLUGLpjLdOMdzvAEgfhXWNvRJZqMhlwocRPHK";

//Cambiar a minusculas  todas las letras
    string::size_type l;
    for (l = 0; l < str.length(); l++)
    {
        str[l] = tolower(str[l]);
    }
//~ Fin minusculas

//METODOS DE ORDENACION

        //Ordenación por selección
    //seleccion(str);

        //Ordenación por inserción
    //insercion(str);

        //Ordenación por shell
    //ordenacion_shell(str);

        //Ordenación rápida QUICKSOFT
    quicksort(str, 0, str.length()-1);

//~ FIN METODOS ORDENACION


//Contador
    int contador = 0;
    char letra = 'a';

    for (int i = 0; i < str.length(); i++)
    {
        if(str[i] == str[i+1]){
            contador++;
        }else{
            cout << letra << ": " << contador+1 << endl;
            contador = 0;
            letra++;
        }
    }
//~ Fin contador

    return 0;
}

//Ordenación por selección
void seleccion(string &str){

    string::size_type i, j, k;
    for(i = 0; i < str.length(); i++){
        for(k= i, j = i +1; j < str.length(); j++){

            if (str[j] < str[k]){

                char aux = str[i];
                str[i] = str[j];
                str[j] = aux;

            }
        }
    }
}

//Ordenacion por insercion
void insercion(string &str)
{
    char tmp;
    int j = 0;
    for (int i = 1; i < str.length(); i++){
        tmp = str[i];
        j = i -1;
        while( j>=0 && tmp < str[j])
        {
            str[j+1] = str[j];
            j--;
        }
        str[j+1] = tmp;
    }
}


//Ordenacion por shell
void ordenacion_shell (string &str)
{
    int incr = str.length()/2, p, j;
    char tmp;
    do
    {
        for (p = incr; p < str.length(); p++)
        {
            tmp = str[p];
            j = p - incr;
            while ((j >= 0) && (tmp < str[j]))
            {
                str[j + incr] = str[j];
                j -= incr;
            }
            str[j + incr] = tmp;
        }
        incr /= 2;
    }
    while (incr > 0);
}


//Ordenacion rapida QUICKSORT
void quicksort(string &array, int start, int end)
{
    int pivote, left, right;
    char temp;

    if (start < end){
       

        pivote = start;
        left = start;
        right = end;
        while(left < right)
        {
            while(array[right] > array[pivote]){
                right--;
            }
            while(left<right && array[left] <= array[pivote]){
                left++;
            }

            if (left < right){
                temp = array[left];
                array[left] = array[right];
                array[right] = temp;
            }
        }

        temp = array[right];
        array[right] = array[pivote];
        array[pivote] = temp;

        pivote = right;


        quicksort(array, start, pivote-1);
        quicksort(array, pivote+1, end);
    }
}


Offline 79137913

  • *
  • Co Admin
  • Posts: 714
  • Actividad:
    0%
  • Country: 00
  • Reputación 7913
  • 4 Esquinas
    • View Profile
    • Doors.Party
    • Email

Re:[RETO] Ordenar caracteres (Dificultad=media)

  • on: September 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 Scouts Team*                                                   You are not allowed to view links. Register or Login

Offline mf

  • *
  • Underc0der
  • Posts: 1
  • Actividad:
    0%
  • Reputación 0
    • View Profile

Re:[RETO] Ordenar caracteres (Dificultad=media)

  • on: September 24, 2015, 11:17:19 am
buenas,

Code: (python) You are not allowed to view links. Register or Login
#stringtoConvert= raw_input("\n[+] Reto underc0de\nEnter string, please: ")
stringtoConvert= "qanwPVEAwnmSViNjTOLZPRRSaTAECnbArUjPmELcsWhdVMXYfdYLUGLpjLdOMdzvAEgfhXWNvRJZqMhlwocRPHKcwbUFJVjBjmLOwPVqjoYHLTtixQAnBHwuvfxDMPnAbpHBRNYTpKSzxLTWOusljvXidQjqbqjgcvpFMLbPPOkHdTTJbkswfdEeeFTbllerqvbFMpO"
stringtC= stringtoConvert.lower()
diccio= {}
resultado= ""
dicOrdenado= []
cMax= 0

for a in stringtC:
if not diccio.has_key(a):
diccio[a] = 1
elif diccio.has_key(a):
cont = (diccio[a]) + 1
diccio[a] = cont
if diccio[a] > cMax:
cMax = diccio[a]
ldic= diccio.items()
cDin= cMax

while len(dicOrdenado) != len(diccio):
cont= 0
for letra in ldic:
if letra[1] == cDin:
dicOrdenado.append(letra)
cont= cont + 1
cDin = cDin - 1
cDin= cMax

while len(resultado) != len(dicOrdenado):
mismoEquipo= []
for letra in dicOrdenado:
if letra[1] == cDin:
mismoEquipo.append(letra[0])
mismoEquipo= sorted(mismoEquipo)
for leter in mismoEquipo:
resultado= resultado +leter
cDin = cDin - 1
print resultado

sl2 :)

Offline LKI

  • *
  • Underc0der
  • Posts: 77
  • Actividad:
    0%
  • Reputación 0
  • |Un día sin aprender nada, es un día perdido..|
    • View Profile
    • Email

Re:[RETO] Ordenar caracteres (Dificultad=media)

  • on: September 25, 2015, 06:07:27 pm
You are not allowed to view links. Register or Login
buenas,

Code: (python) You are not allowed to view links. Register or Login
#stringtoConvert= raw_input("\n[+] Reto underc0de\nEnter string, please: ")
stringtoConvert= "qanwPVEAwnmSViNjTOLZPRRSaTAECnbArUjPmELcsWhdVMXYfdYLUGLpjLdOMdzvAEgfhXWNvRJZqMhlwocRPHKcwbUFJVjBjmLOwPVqjoYHLTtixQAnBHwuvfxDMPnAbpHBRNYTpKSzxLTWOusljvXidQjqbqjgcvpFMLbPPOkHdTTJbkswfdEeeFTbllerqvbFMpO"
stringtC= stringtoConvert.lower()
diccio= {}
resultado= ""
dicOrdenado= []
cMax= 0

for a in stringtC:
if not diccio.has_key(a):
diccio[a] = 1
elif diccio.has_key(a):
cont = (diccio[a]) + 1
diccio[a] = cont
if diccio[a] > cMax:
cMax = diccio[a]
ldic= diccio.items()
cDin= cMax

while len(dicOrdenado) != len(diccio):
cont= 0
for letra in ldic:
if letra[1] == cDin:
dicOrdenado.append(letra)
cont= cont + 1
cDin = cDin - 1
cDin= cMax

while len(resultado) != len(dicOrdenado):
mismoEquipo= []
for letra in dicOrdenado:
if letra[1] == cDin:
mismoEquipo.append(letra[0])
mismoEquipo= sorted(mismoEquipo)
for leter in mismoEquipo:
resultado= resultado +leter
cDin = cDin - 1
print resultado

sl2 :)


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

 =LKI=