Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro não reportado no algoritmo

Na verdade, não é bem uma pergunta aqui para o fórum, é mais um comentário. =)

Conforme outros tópicos já criados, o erro relatado no texto realmente não ocorre no código.

Entretanto, há outro problema no algoritmo: não são considerados caracteres com acentuação. Vi que "onibus" estava escrito sem o acento, e ao corrigir, isso faz com que o método não identifique o palíndromo. Além disso, não são consideradas vírgulas ou pontos finais.

Fiz esta alteração no código:

String fraseFiltrada = frase.toUpperCase().replace(" ", "").replace("-", "").replace(",", "").replace(".","");
//para remover acentos dos caracteres
fraseFiltrada = Normalizer.normalize(fraseFiltrada, Normalizer.Form.NFD).replaceAll("[^\\p{ASCII}]", "");

Além disso, uma melhoria também pode ser feita: o FOR não precisa percorrer toda a string, somente a metade, senão estaremos duplicando as comparações a serem feitas.

1 resposta
solução!

Olá Cassia, tudo bem ?

Bem legal essa sua maneira de pensar, acho bem justo.

Algo que pode fazer é sugerir uma melhoria no curso, acredito que exista esse botão em algum lugar, daí é só colocar que os responsáveis pelo curso vão ver e analisar com mais calma, por hora já passei seu levantamento para frente e vamos ver o que ocorre.

Valeu pelo feedback :D

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software