Adloun

OCaml (option informatique) · Chapitre 6 · Exercice de TD

Palindrome

Caractères et chaînes de caractères · niveau 2

Énoncé

Écrire est_palindrome s (la chaîne se lit pareil dans les deux sens).

Corrigé

let est_palindrome s =
  let n = String.length s in
  let ok = ref true in
  for i = 0 to n / 2 - 1 do
    if s.[i] <> s.[n - 1 - i] then ok := false
  done;
  !ok

On compare le caractère i à son symétrique n-1-i, pour i jusqu'au milieu. Aucune construction de chaîne : on lit seulement. est_palindrome "kayak" vaut true, est_palindrome "ocaml" vaut false.

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre