Aide : algo palindrome

Fermé
bansan Messages postés 122 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 8 mai 2011 - 12 mars 2008 à 19:22
 blursly - 30 oct. 2013 à 18:07
Bonjour,
j'aimerais bien avoir une petite aide pour cet exo:

Exercice 12 - Chains palindromes
Ecrire un algorithme dont le role est de permettre a l'utilisateur de saisir une chaine de caractéres, puis d'indiquer si la chaine de caractéres saisie est une chaine palindrome (pouvant etre lu dans les deux sens).

Il existe au moins deux methodes pour repondre a ce probleme. donc deux algorithmes sont attendus pour cette question.

Exemples de chaines palindromes : "LAVAL", "non"


Voila ce que j'ai fait:

Afficher ("Saisir une chaine")
Saisir(une chaine)
l<-- LONGUEUR(chaine)

Pour i de 1 à l
a<--sschaine (chaine ,l,1)
....

4 réponses

Bonsoir Bansan,

ne sachant dans quel langage tu programmes je te fais la version algorithmique.


Première méthode :

tu saisis la chaine de caractère dans la variable C1.
tu créais une nouvelle chaine de caractères C2 de même taille, dans laquelle tu copies le premier caractère de C1 en dernière position de C2, le second de C1 dans l'avant dernier de C2 ... jusqu'à la fin.
Ensuite la réponse est donc : C1 == C2 car si les chaines sont identiques c'est un palindrome cqfd.



Deuxième méthode (récursive) :
si C est de taille 1 caractère ou 0 caractère alors c'est un palindrome.
si C de taille >= 2, c'est un palindrome si ces 2 conditions sont réunies ensemble :
1. C(first) == C(last) (premier et dernier caractère de la chaine)
2. et que C(first + 1, last -1) est lui même un palindrome (toute la chaine sauf le premier et le dernier).
cqfd.


Bonne chance.
Greg.
1
bansan Messages postés 122 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 8 mai 2011 1
13 mars 2008 à 00:07
Bonsoir et merci pour la reponse

J'utilise un pseudo langage pour faire l'algo
Et a priori dans les 2 methodes que tu donnes.., je ne vois pas trop comment le retranscrire en commande pseudo langage..
Je vais m'y mettre demain matin
Merci
0