Bonjour,
je trouve un peux de mal a résoudre un exercice en algorithme générale, il est demander d'écrire un algorithme qui teste si un mot est un palindrome.( se lit de gauche a droite comme de droite a gauche exp: radar, laval, sos)
Version imprimable
Bonjour,
je trouve un peux de mal a résoudre un exercice en algorithme générale, il est demander d'écrire un algorithme qui teste si un mot est un palindrome.( se lit de gauche a droite comme de droite a gauche exp: radar, laval, sos)
Bonjour,
Vous avez pas un embryon d'algo?
Ca vous donne une piste?Code:str[i] == str[ L - 1 - i ]
en fette je veux savoir comment inversé le contenu de la variable donner par l'utilisateur pour que je puise tester
En quel langage ? Si c'est en pseudo-langage, y'a franchement aucune difficulté ...
+1.
- 1 - Pour inverser, il suffit de partir de la fin et de copier dans un nouveau tableau. Sinon il faut avoir un marqueur qui part du début, un de la fin et inverser deux à deux les variables (principe des tours de Hanoi).
- 2 - Plutôt que d'inverser le tableau, autant tester directement si c'est un palindrome. Même principe : si le premier est égal au dernier, le deuxième à l'avant dernier, le troisième à l'antépénultième, etc.
Itératif :
Récursif :Code:
1
2
3
4
5
6
7
8
9
10 function palindrome_it(String input): boolean begin int inLgth = length(input); for(int i=0; i<floor(inLgth/2); i++) { if(input[i] != input[inLgth-i-1]) { return false; } } return true; end
Code:
1
2
3
4
5
6
7
8
9 function palindrome_rec(String input): boolean begin int inLgth = length(input); if(inLgth == 0 || inLgth == 1) { return true; } else { return (input[0] == input[inLgth-1]) && palindrome_rec(slice(input, 1, inLgth-1)); } end
Volontairement, ça ne correspond à aucun langage connu (enfin, pas à ma connaissance), et il faut déjà comprendre comment fonctionne un palindrome pour comprendre le raisonnement des deux algos.