Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

palyndrome

Posté par
mcsami
10-10-14 à 10:48

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.

Posté par
carpediem
re : palyndrome 10-10-14 à 11:03

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)

.....

Posté par
mcsami
re : palyndrome 10-10-14 à 11:06

Salut;
je suis encore débutant, pouvez-vous expliquer plus?

Posté par
carpediem
re : palyndrome 10-10-14 à 11:15

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 ....

Posté par
mcsami
re : palyndrome 10-10-14 à 11:30

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?

Posté par
carpediem
re : palyndrome 10-10-14 à 19:27

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

Posté par
mathafou Moderateur
re : palyndrome 10-10-14 à 21:08

Bonjour,

Citation :
aller à
le retour du GOTO
tu programmes en BASIC ?

et pourquoi sortir L[1] de la boucle ?
aucune raison de ne pas le traiter comme les autres lettres du mot.

Posté par Profil Dlzlogicre : palyndrome 10-10-14 à 21:32

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.

Posté par
carpediem
re : palyndrome 11-10-14 à 13:02

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

Posté par
mathafou Moderateur
re : palyndrome 11-10-14 à 13:21

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

Posté par
carpediem
re : palyndrome 11-10-14 à 13:38

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 .... )

Posté par
mathafou Moderateur
re : palyndrome 11-10-14 à 13:47

l'auteur du topic s'étant désabonné (pseudo qui a verdi), cela risque de rester lettre morte ...

Posté par
carpediem
re : palyndrome 11-10-14 à 14:58

ben alors ça fait moins de pas longtemps .... car il me semble qu'il était encore bleu lors de ma réponse de 13h38 .... mais je n'en suis pas sur ...



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !