[PYTHON] LeetCode résolu: Palindrome valide

Palindrome est une récitation https://leetcode.com/problems/valid-palindrome/

Énoncé du problème:

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.

Découvrez si la phrase donnée est une circulaire. Cependant, ignorez tout sauf les caractères alphanumériques (espaces, points, symboles, etc.). Supposons qu'une chaîne vide soit une circulaire. . . . . . .

Cette fois, nous devons extraire uniquement les caractères alphanumériques. Je pensais que c'était correct car je ne pouvais pas utiliser la bibliothèque d'expressions régulières, mais il existe une méthode appelée isalnum. Je ne savais pas.... Réponse 1: Essayez de le tourner docilement avec une phrase pour.

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:

Réponse 2: Le style Lambda est soigné. L'inverse est également traité comme une liste et traité en une seule ligne pour un look épuré.

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 résolu: Palindrome valide