c++经典的递归案例:使用尾递归优化判断字符串是否是回文
作者:野牛程序员:2023-11-20 10:13:09 C++阅读 2779
c++经典的递归案例:使用尾递归优化判断字符串是否是回文
#include <iostream>
// 经典的递归案例:使用尾递归优化判断字符串是否是回文
bool isPalindromeTail(const char str[], int start, int end, bool result = true) {
// 基本情况:如果起始索引大于或等于结束索引,返回结果
if (start >= end) {
return result;
} else {
// 如果首尾字符不相等,更新结果为false
if (str[start] != str[end]) {
result = false;
}
// 递归调用:继续判断剩余部分
return isPalindromeTail(str, start + 1, end - 1, result);
}
}
int main() {
// 测试回文字符串
const char palindromeStr[] = "level";
// 判断字符串是否是回文
if (isPalindromeTail(palindromeStr, 0, std::strlen(palindromeStr) - 1)) {
std::cout << "字符串 \\"" << palindromeStr << "\\" 是回文." << std::endl;
} else {
std::cout << "字符串 \\"" << palindromeStr << "\\" 不是回文." << std::endl;
}
return 0;
}野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

