Maison > Java > javaDidacticiel > Comment pouvons-nous optimiser un algorithme de chaîne de vérification palindrome ?

Comment pouvons-nous optimiser un algorithme de chaîne de vérification palindrome ?

DDD
Libérer: 2024-12-18 02:25:09
original
478 Les gens l'ont consulté

How Can We Optimize a Palindrome Check String Algorithm?

Comment améliorer l'algorithme de chaîne de vérification du palindrome

Le code fourni compare chaque caractère d'un mot à son caractère correspondant à partir de la fin, vérifiant efficacement pour les palindromes. Bien que cette approche soit fonctionnelle, certaines optimisations peuvent améliorer son efficacité.

Une meilleure solution consiste à utiliser deux pointeurs qui se rapprochent l'un de l'autre depuis le début et la fin du mot. Le code modifié suivant résout ce problème :

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

Exemple :

Considérez le mot "andna".

  • i1 est initialisé à 0, et i2 est initialisé à 4 (longueur - 1).
  • Dans la première itération de boucle, word[0] et word[4] sont comparés. Puisqu'ils sont égaux, i1 est incrémenté à 1 et i2 est décrémenté à 3.
  • Le processus continue jusqu'à ce que i1 et i2 se croisent au centre du mot, indiquant un palindrome.

Cette modification améliore l'efficacité du code en éliminant la condition de boucle qui vérifie la longueur des mots paires ou impaires, ce qui le rend plus concis et performant.

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