这个递归函数的基本情况是什么?它的工作原理如何?

时间:2017-04-07 04:34:52

标签: recursion

这里的基本案例是什么?这是完全正常的,但它是如何工作的?

int isPali(char *s, int l, int r)
{
return ((l == r) || (s[l] == s[r] && isPali(s, l+1, r-1)));
}
int main()
{
char str[100];
scanf("%s", str);

if(isPali(str, 0, strlen(str)-1))
printf("Palindrome\n");
else
printf("Not palindrome\n");
}

1 个答案:

答案 0 :(得分:0)

它位于该功能的唯一一行。记住评估表达式时的短路逻辑。 可以更改为

0

当然,您现在可以将短路应用于 else 部分:

if (l == r) 
    return True;
else
    return (s[l] == s[r] && isPali(s, l+1, r-1));