29 votes

Palindrome Golf

Objectif : toutes les langues. La plus petite fonction qui retournera si une chaîne de caractères est un palindrome. Voici la mienne en Python :

R=lambda s:all(a==b for a,b in zip(s,reversed(s)))

50 caractères.

La réponse acceptée sera la plus petite réponse actuelle - elle changera au fur et à mesure que des réponses plus petites seront trouvées. Veuillez préciser la langue dans laquelle votre code est rédigé.

49voto

Jimmy Points 35501

7 caractères en J : Je ne sais pas si c'est la meilleure façon, je suis un peu novice en J :)

p=:-:|.

explication : |. inverse l'entrée. - : compare. les opérandes sont implicites.

p 'radar'
1

p 'moose'
0

42voto

Menkboy Points 1259

Voici le mien ; il est écrit dans un langage spécifique que j'ai inventé et qui s'appelle "palindrome".

p

Editer : Version moins désinvolte (asm i386, syntaxe AT&T)

xor %eax, %eax
mov %esi, %edi
#cld    not necessary, assume DF=0 as per x86 ABI
repne scasb
scan:
    dec %edi
    cmpsb
    .byte 0x75, 6    #jnz (short) done
    dec %edi
    cmp %esi, %edi
    .byte 0x72, -9    #jb (short) scan
inc %eax
done:

16 octets, le pointeur de chaîne va dans ESI, le résultat est dans EAX.

37voto

Joe Zoller Points 577

Malheureusement, je n'arrive pas à descendre en dessous de mille mots...

alt text

(LabVIEW. Ouais, ils laissent n'importe quel clochard poster ici ;)

29voto

ADEpt Points 4405

Haskell, 15 caractères :

p=ap(==)reverse

Version plus lisible, 16 caractères :

p x=x==reverse x

28voto

mhawke Points 10385

Une autre version de python qui est plus courte (21 chars) :

R=lambda s:s==s[::-1]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X