Fácil 0 resolvidos 0% de aceitação

String Palíndroma

Verifique se o texto é lido da mesma forma de frente para trás e de trás para frente.

O que você vai aprender

  • Comparar caracteres das duas pontas
  • Parar assim que aparecer uma diferença
  • Tratar strings vazias e de um caractere

Problema

Ver original (inglês)

Decida se text é um palíndromo, considerando apenas letras e dígitos e ignorando maiúsculas e minúsculas.

Implemente is_palindrome(text).

Entrada

text: O texto a ser verificado (caracteres ASCII).

Saída

Retorne true para um palíndromo, caso contrário false.

Restrições

0 ≤ comprimento ≤ 10.000

Exemplos

Exemplo 1
Entrada:
text = "Racecar"

Saída esperada:
expected = True
Entrada:
std::string text = "Racecar";

Saída esperada:
bool expected = true;
Entrada:
string text = "Racecar";

Saída esperada:
bool expected = true;

Explicação

Em minúsculas, "racecar" é lido da mesma forma nos dois sentidos.

Exemplo 2
Entrada:
text = "hello"

Saída esperada:
expected = False
Entrada:
std::string text = "hello";

Saída esperada:
bool expected = false;
Entrada:
string text = "hello";

Saída esperada:
bool expected = false;

Explicação

"hello" ao contrário é "olleh", que é diferente.

Como abordar

Tente sozinho primeiro e depois abra uma dica de cada vez.

Dica 1

Ignore tudo que não for letra ou dígito antes de comparar.

Dica 2

Avance de ambos os lados para o centro, comparando caracteres sem diferenciar maiúsculas de minúsculas.

Dica 3

Ignore pontuação e espaços com cuidado para não quebrar palíndromos válidos.

Complexidade esperada

tempo O(n), espaço extra O(1)

Referências

Este desafio foi adaptado para o CodeUtility. Siga o enunciado e as restrições acima.

Aprenda com outros

Soluções da comunidade

Ainda não há soluções publicadas. Resolva este desafio para compartilhar a primeira.