C语言:编写一个测试一个串是否为回文的递归函数,是回文,返回1;不是,返回0。
编写一个测试一个串是否为回文的递归函数,是回文,返回1;不是,返回0。并在主函数调用该函数,判断输入的字符串是否为回文串。回文是正读和反读都一样的串。输入:第一行为正整数...
编写一个测试一个串是否为回文的递归函数,是回文,返回1;不是,返回0。并在主函数调用该函数,判断输入的字符串是否为回文串。回文是正读和反读都一样的串。
输入:第一行为正整数N,表示有N组输入数据;每组输入对应一行,为一个字符串。
输出:每组输入对应一行输出,若输入的字符串是回文则输出“Yes!”,否则输出“No!”。
注意:用递归
样例输入
5
abccccbccccba
123454321
adsf fsda
hijkkjih
namemaa
样例输出
Yes!
Yes!
No!
Yes!
No! 展开
输入:第一行为正整数N,表示有N组输入数据;每组输入对应一行,为一个字符串。
输出:每组输入对应一行输出,若输入的字符串是回文则输出“Yes!”,否则输出“No!”。
注意:用递归
样例输入
5
abccccbccccba
123454321
adsf fsda
hijkkjih
namemaa
样例输出
Yes!
Yes!
No!
Yes!
No! 展开
展开全部
#include <stdio.h>
int huiwen(char *s,int n)
{if(n<2)return 1;
if(*s!=*(s+n-1))return 0;
return huiwen(s+1,n-2);
}
int main()
{char s[200];
int i,k;
scanf("%d%*c",&k);
while(k--)
{gets(s);
for(i=0;s[i];i++);
printf("%s\n",huiwen(s,i)?"Yes!":"No!"); //运行完了才加上的"!"
}
return 0;
}
展开全部
只给你写个核心代码吧
//判断一个长度为length的字符串str是否为回文
bool isPalin(const char* str, int length)
{
if(length <= 1)
return true;
if(str[0] != str[length - 1])
return false;
return isPalin(str + 1, length - 1);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#include <string.h>
int check( char *str, int len )
{
if ( len > 1 )
{
if ( *str!=*(str+len-1) )
{
return 0;
}
return check( str+1, len-2 );
}
else
return 1;
}
void main()
{
int rep=0;
char str[100];
scanf("%d", &rep); getchar();
while( rep-- )
{
gets(str);
if ( check(str,strlen(str) ) == 1 )
printf("Yes!\n");
else
printf("No!\n");
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//判断一个长度为length的字符串str是否为回文
bool isPalin(const char* str, int length)
{
if(length <= 1)
return true;
if(str[0] != str[length - 1])
return false;
return isPalin(str + 1, length - 1);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询