这里的基本案例是什么?这是完全正常的,但它是如何工作的?
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");
}
答案 0 :(得分:0)
它位于该功能的唯一一行。记住评估表达式时的短路逻辑。 或可以更改为
0
当然,您现在可以将短路应用于 else 部分:
if (l == r)
return True;
else
return (s[l] == s[r] && isPali(s, l+1, r-1));