[pyar] Problema interesante: el anti-string

Nicolas Sarubbi nicosarubbi en gmail.com
Jue Ago 5 12:59:12 ART 2010


2010/8/5 Claudio Freire <klaussfreire en gmail.com>:
>>
>> On Wed, Aug 04, 2010 at 04:03:02PM -0300, Roberto Alsina wrote:
>> >
>> > Forma más fácil del problema:
>> >
>> > Dado un string S, crear una funcion f tal que  S1>S2 => f(S1) < f(S2)
>> >
>
> Digo... ¿no es más fácil crear un wrapper del str original que compare al
> revés y chau?
>

Si intentamos encontrar una funcion que transforme una cadena en otra,
caracter por caracter, encontramos otro problema que va mas ayá de
ordenar unicode... ¿ que pasa si S2.startswith(s1) ?? ¿y cual es la
transformación de la cadena vacía '' ?

por ejemplo:

   'a' < 'aa' <==> f('a') > f('aa')

Suponiendo una función fácil que transforme las 'a' en 'z', resulta:
    f('') = ''
    f('a') = 'z'
    f('aa') = 'zz'

entonces: ¿¿ '' < 'a' < 'aa' <=/=> '' > 'z' > 'zz'   ??

Una posibilidad es agregar al final de la cadena un carácter mayor a
cualquier otro e irrepetible en el antistr.

Por ejemplo, suponiendo que '~' sea dicho carácter:
    f('') = '~'
    f('a') = 'z~'
    f('aa') = 'zz~'
'' < 'a' < 'aa' <==> '~' > 'z~' > 'zz~'

Pero entonces la cadena antistr no debe contener otro carácter mayor o
igual a '~'.

La clase antistr de Claudio no tiene este problema, porque cambia la
clase del objeto, en lugar de cambiar su contenido.

saludos... nico.



More information about the pyar mailing list