Menu
CoddyTech

Valid Palindrome

Você recebe uma string s. Mantenha apenas as letras e os dígitos, trate letras maiúsculas e minúsculas como iguais e determine se o que restou pode ser lido da mesma forma da esquerda para a direita e da direita para a esquerda. Retorne true se puder e false caso contrário.

Todos os outros caracteres, como ., !, ?, :, ;, - ou _, são ignorados. Se s não tiver nenhuma letra ou dígito, nada restará, e um texto vazio conta como palíndromo.

Função

isPalindrome(s: string) → boolean
sstring
o texto a ser verificado, incluindo a pontuação
Retornaboolean
verdadeiro se as letras e os dígitos de s forem lidos da mesma forma nas duas direções, ignorando maiúsculas e minúsculas

Restrições

  • 1 ≤ s.length ≤ 5 × 104
  • s contém letras do alfabeto inglês, dígitos e os sinais de pontuação . ! ? : ; - _, sem espaços.

Exemplos

Entrada
s = "Was_it_a_car_or_a_cat_I_saw?"
Saída
true
Explicação
Remova os sublinhados e o ponto de interrogação e passe as letras maiúsculas para minúsculas: você obtém wasitacaroracatisaw, que é igual de trás para frente.

lock icon+25 testes ocultos ao enviar

challenge icon

Para ir além

Você consegue decidir isso usando memória extra O(1), sem criar uma cópia limpa de s?

Redefinir código
def isPalindrome(s):
    # Escreva o código aqui
Casos de teste

Caso 1

Caso 2

Caso 3

Entrada

s = "Was_it_a_car_or_a_cat_I_saw?"

Esperado

true