Maison >Java >javaDidacticiel >Comment pouvons-nous optimiser la vérification des chaînes palindromes ?

Comment pouvons-nous optimiser la vérification des chaînes palindromes ?

DDD
DDDoriginal
2024-12-23 17:35:09902parcourir

How Can We Optimize Palindrome String Checking?

Amélioration du code pour la vérification du palindrome

Pour vérifier si une chaîne est un palindrome, vous avez développé une méthode qui compare les caractères des deux extrémités vers le milieu. Cependant, il y a place à l'optimisation.

Approche optimisée :

Le code suivant offre une solution plus simple et plus efficace :

public static boolean istPalindrom(char[] word) {
    int i1 = 0;
    int i2 = word.length - 1;
    while (i2 > i1) {
        if (word[i1] != word[i2]) {
            return false;
        }
        ++i1;
        --i2;
    }
    return true;
}

Explication :

Ce code utilise deux pointeurs, i1 et i2, initialisés au début et fin du mot, respectivement. Il itère vers l'intérieur jusqu'à ce que i2 croise i1.

  • Si les caractères du mot[i1] et du mot[i2] ne correspondent pas, la méthode renvoie false.
  • S'ils correspondent, les deux pointeurs se déplacent vers le centre : i1 incrémente et i2 décrémente.

Lorsque les pointeurs se croisent, le mot entier a été comparé avec succès et la méthode renvoie vrai.

Exemple :

Pour le mot "andna":

  • Initialement, i1 vaut 0 (début du mot) et i2 vaut 4 (fin du mot).
  • Boucle itération :

    • Le caractère en i1 (0) est 'a'. Le caractère en i2 (4) est « a ». Ils correspondent, alors déplacez les deux pointeurs vers le milieu.
    • Le caractère en i1 (1) est 'n'. Le caractère en i2 (3) est « n ». Ils correspondent.
    • i1 (2) et i2 (2) se sont croisés, donc tous les caractères ont été comparés avec succès.

La méthode renvoie vrai, confirmant que "andna" est un palindrome.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn