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.

lock icon+25 ukrytych testów przy wysłaniu

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
Przypadki testowe

Przypadek 1

Przypadek 2

Przypadek 3

Wejście

s = "Was_it_a_car_or_a_cat_I_saw?"

Oczekiwane

true