两种方式判断一个字符串是不是回文字符串
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 ; }