java - 回文函数的递归

标签 java recursion palindrome

有人能帮我找出 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/

相关文章:

java - 两个具有相同方法名称但返回类型不同的 Java 接口(interface)

java - 如何编写一个函数来检查给定的二叉搜索树是否包含给定的值?

java - 递归中带有 return 语句的循环

android - 当我复制一些 TableRows 时,“渲染布局无限循环或无限递归时预览超时”

javascript - 递归检查字符串是否为回文的算法的时间复杂度是多少?

javascript - 在 javascript 中读取本地文件并从中输出某些行

python - 这个检查回文的函数的错误在哪里?

java - 如果我按一次耳机按钮,android.intent.action.MEDIA_BUTTON 事件会触发两次

java - 当我刷新浏览器时看不到变化 - Java EE Web 应用程序。 + Glassfish 4 + Netbeans + Java 7 + Mac 操作系统-

java - JQAssistant - 是否可以查询注释属性的值?