c++ - 使用递归检查回文

标签 c++ recursion palindrome

我正在尝试实现一个函数来检查一个单词是否是回文 下面是我尝试使用的代码。该代码显然适用于一个字母的单词和不以同一字母开头和结尾的单词。它在其他任何事情上都失败了。请帮忙

bool is_palindrome(int start, int end, const string & str)
{
    if (str[start] != str[end])
        return false;
    else if (start == end)
        return true;
    else
        return is_palindrome(start++, end--, str);

    return false;
}

这里是tis函数调用的main函数 http://csel.cs.colorado.edu/%7Eekwhite/CSCI2270Fall2011/recursion_lab/palindrome.cxx

最佳答案

start++ 递增 [local] 变量 start,并评估为 old 值。您想要计算新值,并且根本不需要更改局部变量。

所以改写 start+1, end-1 ,然后考虑你的字符串有偶数个字符的情况,因为那里还有另一个问题。

关于c++ - 使用递归检查回文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7897612/

相关文章:

c++ - CComModule::Unlock();

c++ - 使用 setw、cout 和 for

PHP 递归数组循环和格式化

MySQL不支持递归函数?为什么?从何时起?

c++ - 在不更改输入的情况下确定字符串是否为回文

c++ - 如何保存指针最初指向的原始值

c++ - Oboe C++ 线程——如何在不阻塞的情况下读取和写入队列

python - 在Python 2.7中通过递归添加数字来将数字压缩为一位数字的程序中得到错误的总和

java - 仅使用嵌套循环测试回文

c - 如何初始化优先级队列(定制库)