Maison >Java >javaDidacticiel >Comment déterminer efficacement si une chaîne est un palindrome ?
Comment vérifier efficacement les chaînes pour les palindromes
Vérifier les chaînes pour les palindromes implique de vérifier si elles se lisent de manière identique dans les deux sens. Une approche simple pour cette tâche consiste à convertir la chaîne en un tableau de caractères et à comparer les éléments adjacents.
Voici un exemple d'implémentation de cette approche :
public class Aufg1 { // Main method for testing public static void main(String[] args) { String wort = "reliefpfpfeiller"; char[] warray = wort.toCharArray(); System.out.println(istPalindrom(warray)); } // Method for checking palindromes public static boolean istPalindrom(char[] word) { boolean palindrom = false; if (word.length % 2 == 0) { for (int i = 0; i < word.length / 2 - 1; i++) { if (word[i] != word[word.length - i - 1]) { return false; } else { palindrom = true; } } } else { for (int i = 0; i < (word.length - 1) / 2 - 1; i++) { if (word[i] != word[word.length - i - 1]) { return false; } else { palindrom = true; } } } return palindrom; } }
Ce code parcourt le tableau de caractères , en comparant les éléments aux extrémités opposées pour déterminer s'ils correspondent. Cependant, il existe une approche plus optimisée qui consiste à comparer les éléments en commençant simultanément par le début et la fin.
Code amélioré :
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; }
Exemple :
Utiliser la chaîne d'entrée "andna" comme exemple :
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!