Deves retirar o primeiro e o último caracter. A palavra é palíndromo se os caracteres forem iguais e a String resultante for também um palíndromo.
publicstaticbooleanisPalindrome(Strings){
if(s.length()<2){
returntrue; // String vazia ou com um caracter é palíndromo}
charfirst=s.charAt(0); charlast=s.charAt(s.length()-1);returnfirst==last&&isPalindrome(s.substring(1,s.length()-1));}
D
davidbuzatto1 like
Outra sugestão de implementação:
publicstaticvoidmain(String[]args){String[]ss={"","a","aa","ab","arara","arbra","palíndromo"};for(Strings:ss){System.out.printf("\"%s\" é palíndromo? %s\n",s,isPalindrome(s)?"sim":"não");}}publicstaticbooleanisPalindrome(Strings){returnisPalindrome(s,0,s.length()-1);}privatestaticbooleanisPalindrome(Strings,inti,intf){if(i>=f){returntrue;}else{if(s.charAt(i)==s.charAt(f)){returnisPalindrome(s,i+1,f-1);}else{returnfalse;}}}
Há duas bases para a recursão:
quando os caracteres das extremidades forem diferentes;
quando acabarem os caracteres que precisam ser verificados, pois há um caractere central (i = f) ou os caracteres acabaram (i > f).
O passo indutivo/recursivo é quando os dois caracteres são iguais, então move-se as posições para mais para dentro da String, invocando novamente método.
P
pmlm1 like
Funciona mas não responde ao requisito do método recursivo ter apenas a String como input.
A
Alumno1 like
Ola polidromo são as palavras que se pode ler detraz pra frente o imprimir detraz pra frente como ana java avaj