Es ist ein einfaches Problem mit der Beschreibung:
Eine Phrase ist ein Palindrom, wenn sie nach der Umwandlung aller Großbuchstaben in Kleinbuchstaben und dem Entfernen aller nicht-alphanumerischen Zeichen vorwärts und rückwärts dasselbe liest. Zu den alphanumerischen Zeichen gehören Buchstaben und Zahlen.
Gibt bei einer gegebenen Zeichenfolge „true“ zurück, wenn es sich um ein Palindrom handelt, andernfalls „false“.
Beispiel 1:
Eingabe: s = „Ein Mann, ein Plan, ein Kanal: Panama“
Ausgabe: wahr
Erklärung: „amanaplanacanalpanama“ ist ein Palindrom.Beispiel 2:
Eingabe: s = „race a car“
Ausgabe: false
Erklärung: „raceacar“ ist kein Palindrom.Beispiel 3:
Eingabe: s = " "
Ausgabe: wahr
Erläuterung: s ist eine leere Zeichenfolge „“, nachdem nicht-alphanumerische Zeichen entfernt wurden.
Da eine leere Zeichenfolge vorwärts und rückwärts dasselbe liest, handelt es sich um ein Palindrom.Einschränkungen:
1 <= s.length <= 2 * 105
s bestehen nur aus druckbaren ASCII-Zeichen.
Nach dem, was ein Palindrom ist, entfernen Sie im Grunde alle Nicht-Alpha-Elemente und rufen dann auf, um die Groß-/Kleinschreibung zu verringern, und kehren zum Vergleichen zurück.
Mit Methoden und etwas Reg-Exp können Sie dies in drei Zeilen lösen:
class Solution { public boolean isPalindrome(String s) { final String reduced = s.replaceAll("[^A-Za-z0-9]", "").toLowerCase(); final String inverted = new StringBuilder(reduced).reverse().toString(); return reduced.equals(inverted); } }
Laufzeit: 15 ms, schneller als 22,51 % der Java-Online-Einreichungen für Valid Palindrome.
Speichernutzung: 44,8 MB, weniger als 34,15 % der Java-Online-Einreichungen für Valid Palindrome.
Das sollte als einfache und einfache Frage ausreichen, aber um eine bessere Leistung zu erzielen, könnten Sie jedes Zeichen iterieren und überprüfen und nach Bedarf entfernen und anpassen. Schauen Sie sich in diesem Fall die Saksham-Antwort auf Leetcode an (wenn Sie möchten, dass ich es im Detail erkläre). , bitte kommentieren Sie unten).
—
Das ist es! Wenn es sonst noch etwas zu besprechen gibt, können Sie gerne einen Kommentar hinterlassen. Wenn ich etwas verpasst habe, lassen Sie es mich wissen, damit ich es entsprechend aktualisieren kann.
Bis zum nächsten Beitrag! :)
Das obige ist der detaillierte Inhalt vonLeetcode – Top-Interview –. Gültiges Palindrom. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!