两种方式判断一个字符串是不是回文字符串

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序的功能是判断一个字符串是不是回文字符串。判断一个字符串s是否是回文串要求编写递归函数实现,算法思想是:先判断第1个字符和最后1个字符是否相等,若不等,则不是回文串,若相等,则递归的判断由第2个字符~倒数第2个字符构成的串是否是回文串,编写递归函数int huiwen(……)实现判断字符串s是不是回文,是返回1,不是,返回0。主函数中调用该函数,对输入的字符串进行判断,并显示判断的结果。

试验程序:

如果不递归调用可以这样写:

#include

#include

using namespace std;

int huiwen(char a,char b)

{

if(a==b)

return 0;

else

return 1;

}

int main(void)

{

char t[1024];

int len,i,j,k;

cin>>t;

len=strlen(t);

for(i=0,j=len-1;i

{

k=huiwen(t[i],t[j]);

if(k)

{

cout<

return 0;

}

}

cout<

return 0 ;

}

如果递归的话,可以如下写:

#include

#include

using namespace std;

int huiwen2(char *s,int m,int n)

{

if(m

{

if(s[m]==s[n])

huiwen2(s,m+1,n-1);

else

return 1;

}

else

return 0;

}

int main(void)

{

char t[1024];

int len;

cin>>t;

len=strlen(t);

if(huiwen2(t,0,len-1))

cout<

else

cout<

return 0 ;

}

相关文档
最新文档