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