Maison >Java >javaDidacticiel >Comment pouvons-nous vérifier efficacement si une chaîne est un palindrome ?

Comment pouvons-nous vérifier efficacement si une chaîne est un palindrome ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-28 00:01:09822parcourir

How Can We Efficiently Check if a String is a Palindrome?

Vérificateur de palindrome raffiné

Dans cette démonstration, nous approfondissons les subtilités de la vérification si une chaîne donnée est un palindrome. Un palindrome présente la propriété remarquable d’être lu de manière identique à la fois vers l’avant et vers l’arrière. Une approche courante consiste à convertir la chaîne en un tableau de caractères et à comparer chaque caractère aux extrémités opposées du tableau.

Cependant, il existe une solution plus efficace et plus succincte :

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

Cette amélioration La méthode intègre une boucle while qui parcourt le début et la fin du mot, en comparant chaque caractère en cours de route. Si une paire de caractères ne correspond pas, la chaîne n'est pas un palindrome. En incrémentant i1 et en décrémentant i2 jusqu'à ce qu'ils se rencontrent au milieu du mot, nous pouvons vérifier efficacement les palindromes.

Exemple :

Considérez la chaîne d'entrée "andna" :

  • i1 = 0, i2 = 4
  • Comparez le mot[0] (a) avec le mot[4] (a) : Égal

    • i1 = 1, i2 = 3
  • Comparez le mot[1] (n) avec le mot[3] (n) : Égal

    • i1 = 2, i2 = 2
  • i1 et i2 sont maintenant égaux, donc la boucle se termine et renvoie vrai.

Cet algorithme optimisé fournit une méthode simplifiée pour déterminer si une chaîne donnée 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