当前位置:首页 C++ > 正文

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
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击