有人能帮我找出 isPalindrome(int) 函数出了什么问题吗?
基本上这个函数检查一个数字是否是回文,我想完成 这是通过递归实现的。在函数内调用 isPalindrome(int) 时会出现一些问题。这让我很头疼。谢谢!
public boolean isPalindrome(int num) {
String s = Integer.toString(num);
if( s.length() == 1 ) {
return true;
}
if( s.length() == 2 && s.charAt(0) == s.charAt(1) ) {
return true;
}
if( s.length() > 2 ) {
if(s.charAt(0) == s.charAt(s.length()-1))
s = s.substring(1, s.length()-1);
**isPalindrome(Integer.parseInt(s));**
}
return false;
}
最佳答案
在代码的这一部分
if(s.charAt(0) == s.charAt(s.length()-1))
s = s.substring(1, s.length()-1);
**isPalindrome(Integer.parseInt(s));**
当第一个和最后一个字符不相等时,您没有给出 else 条件。 当它们不相等时,您应该返回 false。并且'return' isPalindrome(Integer.parseInt(s)),否则最后的return将在函数执行后执行。
if(s.charAt(0) == s.charAt(s.length()-1)) {
s = s.substring(1, s.length()-2);
return isPalindrome(Integer.parseInt(s));
} else {
false;
}
关于java - 回文函数的递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8898546/