svp un aide ici:
Un mot palindrome est un mot qui se lit aussi bien de gauche à droite que de droite à gauche.
Par exemple, "ACDBDCA" est un mot palindrome, tant que "ACDBACD" n'est pas un mot
palindrome. Écrivez une méthode qui vérifie si un mot est une palindrome. La méthode prend
comme paramétre d'entré une variable de type String qui représente le mot et elle rend une valeur
de type boolean. La valeur rendue par la méthode est true si la paramétre d'entré répresente un
mot palindrome, sinon, elle est false.
salut
il suffit d'écrire chaque lettre dans une liste L(i) de longueur n = longueur du mot puis de vérifier que L(i) = L(n - i)
.....
exemple avec le mot ACDBBCDA
L(1) = A
L(2) = C
...
L(7) = D
L(8) = A
et tu compares L(i) et L(n + 1 - i)
L(1) = L(8)
L(2) L(7)
donc ça s'arrête car le mot n'est pas un palindrome ....
merci bien; c'est bon comme ça:
Public class palindrome {
public static void main(String[] args) {
system.out.println (palindrome)
}
public static String
L(1) = A
L(2) = C
L(3) = D
L(4) = B
L(5) = B
L(6) = D
L(7) = C
L(8) = A
L(i) et L(n + 1 - i)
L(1) = L(8)
L(2) L(7)
on va utiliser des boucle ou nn?
mais un peu de sérieux !!!
ACDBBDCA n'est qu'un exemple !!!
le programme doit demander un mot quelconque !!!! et le "lire" pour mettre chaque lettre dans une liste !!!
lire mot
n = len(mot)
pour i = 1 to n
L(i) = ..... (lire le sous-mot de mot commençant à la i-ième lettre de mot et de longueur 1)
si L(1) <> L(n) aller à LBL A
i = 1
tant que L(i) = L(n + 1 - i) et i =< n/2 (on s'arrête à la moitié du mot)
i = i + 1
si i <> n/2 aller à LBL A
fin
LBL A :: écrire mot, " n'est pas un palindrome"
fin
Bonjour,
Bonsoir,
Le problème du GOTO est un faux problème.
Si on veut le traiter, je suis d'accord et d'accord avec Carpediem.
Ici, il s'agit d'un algorithme de base, il ne me parait pas utile de faire une diversion sur le GOTO.
mathafou :: oui j'ai cogité pour rien (réflexe par formatage inutile)
je voulais que la boucle "tant que" s'initialise ... mais on s'en fout effectivement ...
lire mot
n = len(mot)
pour i = 1 to n
L(i) = ..... (lire le sous-mot de mot commençant à la i-ième lettre de mot et de longueur 1)
tant que L(i) = L(n + 1 - i) et i =< n/2 (on s'arrête à la moitié du mot)
i = i + 1
si i <> n/2 écrire mot, " n'est pas un palindrome"
sinon écrire mot, "est un palindrome"
fin
on est bien d'accord
sauf que le "si i différent de n/2" risque tout de même de poser des problèmes si n impair
le test doit être "l'inverse exact" du test de la boucle
l'inverse de est >, pas
si ce test est vrai (si i > n/2) c'est qu'on est sorti de la boucle à cause du "et i n/2" qui est devenu faux et donc que toutes les conditions "si L(i) = L(n + 1 - i)" ont toutes été vraies, sauf peut être la dernière
mais qui est en fait vraie aussi puisque c'est des lettres déjà testées
oui je ne m'étais pas occupé de regarder en détail la parité de n et la précision du test (rester vague pour obligé à tester le programme et ses conditions extrêmes par l'auteur du post ... histoire de ne pas tout lui donner gratos .... )
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :