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
Libérer: 2024-12-23 17:35:09
original
871 Les gens l'ont consulté

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;
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal