elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [RETO+Python] Buscando rangos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [RETO+Python] Buscando rangos  (Leído 8,114 veces)
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
[RETO+Python] Buscando rangos
« en: 12 Enero 2011, 15:12 pm »

He aquí un nuevo reto a ver quién lo tiene más corto >:D

El input del programa será una lista de números mayores a 0 ordenados y separados por espacios.
El script debe de encontrar rangos de números consecutivos y agruparlos, y dejar los que no estan consecutivos separados.
El output serán esos rangos separados por coma y espacio.

Ej:
Código:
INPUT: 1 2 5 8 9 10 11 18
OUTPUT: 1-2, 5, 8-11, 18

INPUT: 3 6 9 10 12 13
OUTPUT: 3, 6, 9-10, 12-13

Saludos!


« Última modificación: 12 Enero 2011, 15:30 pm por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
mr.blood

Desconectado Desconectado

Mensajes: 150


Ver Perfil
Re: [RETO+Python] Buscando rangos
« Respuesta #1 en: 12 Enero 2011, 15:32 pm »

Una pregunta, meter los datos desordenados no valdria no ??? ;).

Sa1uDoS


En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [RETO+Python] Buscando rangos
« Respuesta #2 en: 12 Enero 2011, 15:38 pm »

No, los datos se ingresan ordenados y se considera que se mete una muestra "buena", así que no es necesario verificar nada. Además eso se arreglaría con un simple sort,por eso directamente lo he obviado.

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [RETO+Python] Buscando rangos
« Respuesta #3 en: 12 Enero 2011, 16:18 pm »

Me apunto >:D

Por cierto, se devuelve una cadena de texto, no?
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [RETO+Python] Buscando rangos
« Respuesta #4 en: 12 Enero 2011, 16:31 pm »

Exacto, imprimir una cadena. Yo por ahora tengo un código funcional pero me resulta muy largo, y se que se puede hacer más corto, así que voy a ver si tomo las cosas por otro lado :P

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
ukol

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Re: [RETO+Python] Buscando rangos
« Respuesta #5 en: 12 Enero 2011, 21:24 pm »

Jaja me gustan estos retos  :D
No he contado pero ahi va el mio, en mi estilo ONE-LINE
la entrada va en l, no la he recogido, voy a cenar ya no tengo tiempo
ME ha costado un buen rato, depurar cosas de 1 linea es superchungo
Código
  1. for i in reduce(lambda l,x:l[:-1]+[l[-1]+[x][x-l[-1][-1]-1:]]+[[x]][:x-l[-1][-1]-1],l[1:],[l[0:1]]):print str(i[0])+(len(i)-1 and'-'+str(i[-1])or''),',',
  2.  
con
Código:
l=[1,3,5,6,7,8,10,13,14,17]
output
Código:
1 , 3 , 5-8 , 10 , 13-14 , 17 ,
Cuente Cuente, son 3 ojos! (no sé cuantos bytes  :laugh:)
En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [RETO+Python] Buscando rangos
« Respuesta #6 en: 12 Enero 2011, 21:35 pm »

Ukol, no estas cumpliendo los requisitos del reto! Has de recibir una cadena de numeros separados por espacios...
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [RETO+Python] Buscando rangos
« Respuesta #7 en: 12 Enero 2011, 22:19 pm »

Eso mismo, y la salida debe de ser número->coma->espacio->otra vez :P
154 bytes, pero te falta el input :P

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [RETO+Python] Buscando rangos
« Respuesta #8 en: 13 Enero 2011, 15:52 pm »

Lo minimo que he conseguido, cumpliendo todas las reglas del reto, han sido 153 bytes :-\
Código
  1. e,s=1,''
  2. def m(x,y):
  3. global e,s
  4. if int(x)-int(y)-1:s+=y+', ';e=1
  5. elif e:s+=y+'-';e=0
  6. return 0
  7. a=sorted(raw_input().split(),cmp=m)[-1];print s+a
Supongo que debe haber una forma mas simple, pero no se me ocurre :laugh:

Un saludo :D
« Última modificación: 13 Enero 2011, 15:55 pm por Karcrack » En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [RETO+Python] Buscando rangos
« Respuesta #9 en: 16 Enero 2011, 19:07 pm »

Nadie mas? Uiiis.. que soso el reto :P
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[RETO] ¿Fácil? Buscando los números de Lychrel « 1 2 3 4 »
Programación Visual Basic
raul338 34 13,572 Último mensaje 19 Agosto 2010, 01:54 am
por [D4N93R]
Reto/Juego Ejercicios en Python « 1 2 3 4 5 »
Ejercicios
Novlucker 47 35,544 Último mensaje 20 Diciembre 2010, 06:47 am
por [L]ord [R]NA
Reto: Números primos en python
Ejercicios
Novlucker 6 10,434 Último mensaje 24 Noviembre 2010, 16:02 pm
por Novlucker
[Python]Transformar rangos de IP
Scripting
.:UND3R:. 3 3,583 Último mensaje 18 Mayo 2015, 05:53 am
por .:UND3R:.
[Problema Reto C/C++] Sumatoria de Rangos de Impares
Programación C/C++
AlbertoBSD 5 2,668 Último mensaje 14 Marzo 2017, 17:16 pm
por AlbertoBSD
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines