i've seen other recursive palindrome questions , i've seen answers, 1 have little different. needs able check string spaces , punctuation , ignore them (i know, technically aren't palindromes), strings such "madam, i'm adam" should return true, program not. here's have:
public static boolean ispalindrom(string s){ system.out.println(s); if (!character.isletter(s.charat(0))){ ispalindrom(s.substring(1,s.length())); } if (!character.isletter(s.charat(s.length()-1))){ ispalindrom(s.substring(0,s.length()-1)); } if (s.length() == 1){ return true; } if (s.length() == 2){ if (s.substring(0,1).equalsignorecase(s.substring(s.length()-1))){ return true; } else return false; } if (!(s.substring(0,1).equalsignorecase(s.substring(s.length()-1)))){ return false; } return ispalindrom(s.substring(1,s.length()-1)); }
the problem once starts unwinding recursion, strings contained spaces , punctuations start returning false. i'm not sure do. i've been messing around trying different solutions hour now.
p.s. i'm trying not use regular expressions remove spaces , punctuation , such.
you don't return result of first 2 ispalindrom
(which check cases started failing now...):
if (!character.isletter(s.charat(0))){ return ispalindrom(s.substring(1,s.length())); } if (!character.isletter(s.charat(s.length()-1))){ return ispalindrom(s.substring(0,s.length()-1)); }
Comments
Post a Comment