用递归的方法,判断某个字符串是否为回文

回文,即一个字符串正读倒读都一样,如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 }

递归的运行时间长,占用内存大,好处是代码量短

 

转载于:https://www.cnblogs.com/persistentlyworking/archive/2013/05/10/3071430.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值