加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java – 通过递归测试字符数组是否为回文

发布时间:2020-12-15 04:37:24 所属栏目:Java 来源:网络整理
导读:我试图寻找解决方案,但我发现的所有解决方案都是字符串.我想要做的是检查用户输入的字符数组是否是回文.这是我到目前为止所拥有的: public static boolean palCheck(char[] a,int index,int start) { if (a[start] != a[index]){ return false; //base case
我试图寻找解决方案,但我发现的所有解决方案都是字符串.我想要做的是检查用户输入的字符数组是否是回文.这是我到目前为止所拥有的:

public static boolean palCheck(char[] a,int index,int start) {
    if (a[start] != a[index]){
        return false; //base case
    }
    else if(a[start+1] == a[index]){
        palCheck (a,index-1,start+1);
        return true; //recursive step
    } 
    else 
        return false;
}

如果数组的第一个和最后一个元素相同,它总是返回true.我哪里做错了?提前致谢!

解决方法

你在平等情况下返回true,而不是你的递归解决方案(被丢弃).您还需要检查索引何时超出范围或何时相等,以便在您确认它是一个回文后,您的函数将终止.

编辑:

public static boolean palCheck(char[] a,int start) {
    if (index <= start) { 
        return true; 
    }
    if (a[start] != a[index]){
        return false; //base case
    } else {
        return palCheck (a,start+1); //recursive step
    } 
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读