回文,即一个字符串正读倒读都一样,如abcdcba
递归,就是重复使用同一种方法。
在判断字符串是否是回文的时候,如果要采用递归,首先要分析出重复做的是什么事情
这里很明显,要重复判断两端的字符是不是相等的,直到剩下最后一个或者0个字符的时候
1 #include "stdafx.h" 2 #include "stdio.h" 3 #include "string" 4 using namespace std; 5 6 int fun(char *ptr,int len) 7 { 8 if (len==1||len==0) return 1; 9 if (ptr[0]==ptr[len-1])10 {11 ptr++;12 fun(ptr,len-2);13 }14 else return 0;15 }16 17 18 19 20 int _tmain(int argc, _TCHAR* argv[])21 {22 char test[20]={ 0};23 printf("please input the test string\n");24 scanf("%s",test);25 26 if (fun(test,strlen(test))) printf("yes! it is\n");27 else28 printf("no! it is not\n");29 return 0;30 }
递归的运行时间长,占用内存大,好处是代码量短