[pyar] Problema interesante: el anti-string

Roberto Alsina ralsina en netmanagers.com.ar
Jue Ago 5 15:28:57 ART 2010


On Thursday 05 August 2010 15:11:05 Anthony Lenton wrote:
> Confieso que no leí todo el thread, pero capaz ayudo...
> 
> 2010/8/4 Roberto Alsina <ralsina en netmanagers.com.ar>:
> > On Wednesday 04 August 2010 15:51:47 Roberto Alsina wrote:
> >> Buenas, tengo un problema interesante.
> >> 
> >> Dado una lista de strings S1,S2...SN , producir una lista X1,X2,...XN
> >> que al ordenarla alfabéticamente ordene **al revés** que la original.
> >> 
> >> O sea, si tengo
> >> 
> >> S1, X1
> >> S2, X2
> >> 
> >> 
> >> SN, XN
> >> 
> >> Quiero que si ordeno por la primera columna, S1, S2... SN queden en
> >> orden alfabético creciente, y si ordeno en orden alfabético creciente
> >> por la segunda, queden exactamente al revés.
> >> 
> >> Se entiende?
> >> _______________________________________________
> >> pyar mailing list pyar en python.org.ar
> >> http://listas.python.org.ar/listinfo/pyar
> >> 
> >> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> > 
> > Forma más fácil del problema:
> > 
> > Dado un string S, crear una funcion f tal que  S1>S2 => f(S1) < f(S2)
> > 
> > Ahí creo que es más claro :-)
> 
> Hacer esto es fácil con enteros porque son una secuencia infinita
> hacia ambos lados, así que eligiendo cualquier punto al azar podés
> encontrar simétricos para todos los demás respecto de este "cero".
> 
> Los strings en cambio son cerrados abajo: no hay ningún string más
> chico que "".  Entonces no vas a poder encontrar un negativo para
> cualquiera, ya que si invertís el conjunto en sí mismo te quedaría un
> conjunto "cerrado arriba".

Bueno, entonces lo cerramos de ambos lados diciendo "strings con una longitud 
máxima de 100 caracteres"?

> Para ponerlo de otra manera:  Si tomás f("") que, según el enunciado
> inicial te tiene que devolver algún string, te queda una cantidad
> finita de strings para la imagen de tu función, ya que f(x) debería
> dar un string menor que éste para cualquier valor de x.  Y
> lamentablemente hay infintos strings mayores que "" por un lado, y
> apenas un puñado de strings menores que f("") por otro.
> 
> Si podés asumir que hay un string "máximo" (chr(255)*sys.maxint?) sí
> se hace posible, ya que transformaste los strings en un conjunto
> cerrado en ambas puntas.

Ok, creo que con una logitud maxima lo cerramos, porque (en el caso del ascii) 
tenemos ahora el intervalo ['' .... 'z'*100] (por ejemplo)



More information about the pyar mailing list