用递归的办法,断定某个字符串是否为回文
添加时间:2013-5-10 点击量:
回文,即一个字符串正读倒读都一样,如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 else
28 printf(no! it is not\n);
29 return 0;
30 }
递归的运行时候长,占用内存大,益处是代码量短
真正的心灵世界会告诉你根本看不见的东西,这东西需要你付出思想和灵魂的劳动去获取,然后它会照亮你的生命,永远照亮你的生命。——王安忆《小说家的十三堂课》
回文,即一个字符串正读倒读都一样,如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 else
28 printf(no! it is not\n);
29 return 0;
30 }
递归的运行时候长,占用内存大,益处是代码量短
真正的心灵世界会告诉你根本看不见的东西,这东西需要你付出思想和灵魂的劳动去获取,然后它会照亮你的生命,永远照亮你的生命。——王安忆《小说家的十三堂课》