Menu
CoddyTech

Valid Palindrome

Otrzymujesz ciąg znaków s. Zachowaj tylko litery i cyfry, traktuj wielkie i małe litery jako takie same, a następnie zdecyduj, czy to, co pozostało, czytane od lewej do prawej jest takie samo jak czytane od prawej do lewej. Zwróć true, jeśli tak jest, a w przeciwnym razie false.

Wszystkie pozostałe znaki, takie jak ., !, ?, :, ;, - lub _, są ignorowane. Jeśli s nie zawiera żadnych liter ani cyfr, nic nie pozostaje, a pusty tekst jest uznawany za palindrom.

Funkcja

isPalindrome(s: string) → boolean
sstring
tekst do sprawdzenia, wraz z interpunkcją
Zwracaboolean
prawda, jeśli litery i cyfry w s czytane w obu kierunkach są takie same, bez uwzględniania wielkości liter

Ograniczenia

  • 1 ≤ s.length ≤ 5 × 104
  • s zawiera angielskie litery, cyfry i znaki interpunkcyjne . ! ? : ; - _, bez spacji.

Przykłady

Wejście
s = "Was_it_a_car_or_a_cat_I_saw?"
Wyjście
true
Wyjaśnienie
Usuń podkreślenia i znak zapytania, a wielkie litery zamień na małe: otrzymasz wasitacaroracatisaw, które czytane od tyłu jest takie samo.
challenge icon

Pytanie dodatkowe

Czy potrafisz rozstrzygnąć to przy użyciu dodatkowej pamięci O(1), bez tworzenia oczyszczonej kopii s?

Zresetuj kod
def isPalindrome(s):
    # Napisz kod tutaj

Test #1

Test #2

Test #3

Argument

s = "Was_it_a_car_or_a_cat_I_saw?"

Oczekiwany wynik

true