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 } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |