对于一个采用字符数组存放的字符串str设计一个递归算法要判断str是否为回文。要求先写出递归模型再写出对应的递归程序。
递归模型:
- 当字符串为空或只有一个字符时,返回true;
- 当字符串第一个字符和最后一个字符相同时,递归判断去掉首尾字符的子串是否为回文;
- 当字符串第一个字符和最后一个字符不相同时,直接返回false。
递归程序:
public static boolean isPalindrome(char[] str, int start, int end) {
if (start >= end) { // 递归终止条件:字符串为空或只有一个字符
return true;
} else if (str[start] == str[end]) { // 当字符串第一个字符和最后一个字符相同时
return isPalindrome(str, start + 1, end - 1); // 递归判断去掉首尾字符的子串是否为回文
} else { // 当字符串第一个字符和最后一个字符不相同时
return false;
}
}
调用方式:
char[] str = "abcba".toCharArray();
boolean result = isPalindrome(str, 0, str.length - 1);
System.out.println(result); // true
原文地址: https://www.cveoy.top/t/topic/b2VX 著作权归作者所有。请勿转载和采集!