Heim >Java >javaLernprogramm >Wie kann man effizient feststellen, ob ein String ein Palindrom ist?
So überprüfen Sie Strings effektiv auf Palindrome
Bei der Überprüfung von Strings auf Palindrome muss überprüft werden, ob sie in beide Richtungen identisch gelesen werden. Ein einfacher Ansatz für diese Aufgabe besteht darin, die Zeichenfolge in ein Zeichenarray umzuwandeln und benachbarte Elemente zu vergleichen.
Hier ist eine Beispielimplementierung dieses Ansatzes:
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; } }
Dieser Code iteriert über das Zeichenarray Dabei werden Elemente an gegenüberliegenden Enden verglichen, um festzustellen, ob sie übereinstimmen. Es gibt jedoch einen optimierteren Ansatz, der den gleichzeitigen Vergleich von Elementen am Anfang und am Ende beinhaltet.
Verbesserter Code:
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; }
Beispiel:
Verwenden der Eingabezeichenfolge „andna“ als Beispiel:
Das obige ist der detaillierte Inhalt vonWie kann man effizient feststellen, ob ein String ein Palindrom ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!