[PYTHON] LeetCode gelöst: Gültiges Palindrom

Palindrom ist eine Rezitation https://leetcode.com/problems/valid-palindrome/

Problemstellung:

Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.

Note: For the purpose of this problem, we define empty string as valid palindrome.

Example 1: Input: "A man, a plan, a canal: Panama" Output: true

Example 2: Input: "race a car" Output: false

Constraints: s consists only of printable ASCII characters.

Finden Sie heraus, ob der angegebene Satz ein Rundschreiben ist. Ignorieren Sie jedoch alles außer alphanumerischen Zeichen (Leerzeichen, Punkte, Symbole usw.). Angenommen, eine leere Zeichenfolge ist ein Kreis. . . . . . .

Dieses Mal müssen wir nur alphanumerische Zeichen extrahieren. Ich fand es in Ordnung, weil ich die Bibliothek für reguläre Ausdrücke nicht verwenden konnte, aber es gibt eine Methode namens isalnum. Ich wusste es nicht.... Antwort 1: Versuchen Sie, es gehorsam mit einem for-Satz zu drehen.

solution.py


class Solution:
    def isPalindrome(self, s: str) -> bool:
        
        alphanumeric_filter = filter(str.isalnum, s)
        alphanumeric_string = "".join(alphanumeric_filter).lower()
        
        reverse_text = ""
        for i in range(1,len(alphanumeric_string)+1):
             reverse_text += alphanumeric_string[len(alphanumeric_string)-i]
        
        return alphanumeric_string == reverse_text:

Antwort 2: Der Lambda-Stil ist ordentlich. Die Umkehrung wird auch als Liste behandelt und für ein sauberes Erscheinungsbild in einer Zeile verarbeitet.

solution.py


class Solution:
    def isPalindrome(self, s: str) -> bool:

        filtered = filter(lambda ch: ch.isalnum(), s)
        lowercase = map(lambda ch: ch.lower(), filtered)

        processed_list = list(lowercase)
        reversed_list = processed_list[::-1]

        return processed_list == reversed_list

Recommended Posts

LeetCode gelöst: Gültiges Palindrom