我有一个 bool pal(char str[], int length)
的原型(prototype)限制,我需要测试用户输入的字符串是否是回文。我的代码是:
bool pal(char str[], int length)
{
if(*str == str[length - 1])
{
pal(str+1, length-1);
}
else
{
return false
}
return true;
}
但它似乎只是在测试第一个字符是否与最后一个字符相同。我认为这是因为我的数组(起点)没有递增,但我不确定为什么。
最佳答案
我想这可能是由于对 if
语句的一些根深蒂固的厌恶,但如果由我来决定,我想我会写这样的代码:
bool pal(char *str, size_t len) {
return len <2 || (str[0] == str[len-1] && pal(str+1, len-2));
}
关于c++ - 递归回文测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14681739/