|
Publicité ' | ||||||||||||||||||||||||
|
|
#21 | ||||||||||
|
Expert Confirmé
![]() Inscription : septembre 2006 Messages : 2 375 ![]() |
premier essai :
Code :
Code :
Code :
si l'on veut une seule sortie : remplacer l'Array "palindromes" par un Hash… pour info, la même version compilée en C : Code :
si on ne stocke pas les résultats, mais qu'on les sort directement (tjs la version en C) Code :
|
||||||||||
|
|
00
|
|
|
#22 | ||
|
Membre Expert
![]() Inscription : avril 2009 Messages : 1 359 ![]() |
Une expression J qui donne la liste des plus longs palindromes
Code :
si y est la chaine qu'on étudie 1+i.#y est la suite 1 2 3 ... #y (#y : longueur de la chaine) n {/ y génère toutes les sous chaines de longueur n de y 1+i.#y {/ y génère un tableau de toutes les sous chaines de y ({\~(1+i.@: #)) est l'expression fermée correspondante , met ce tableau "en ligne", et ~. en élimine les doublons ~.,({\~(1+i.@: #)) est la liste de toutes les sous chaines uniques (-: |.) renvoie 1 si la chaine est un palindrome, 0 sinon (#~((-: |.)@ >)) sélectionne les palindromes de la liste précédente (#@>) compte les lettres de chaque palindrome >./ donne le maximum d'une suite (=>./)@: (#@>) renvoie 1 si la longueur est égale à la longueur maximale rencontrée dans la suite (#~((=>./)@: (#@>))) sélectionne les palindromes maximaux Francois |
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com