回文串:字符串字符从前往后与从后往前一致(中心对称)
C语言判断回文串:
#include <stdio.h>
#include <string.h>
int main()
{
char a[105];
int i,l;
while(scanf("%s",a)!=EOF)//多组输入
{
l=strlen(a);//取字符串长度
for(i=0;i<l/2;i++)
{
if(a[i]!=a[l-i-1]) {printf("no\n");break;}//对称位不等,不是回文,退出循环
}
if(i>=l/2) printf("yes\n");//对比次数大于字符串长一半,是回文
}
return 0;
}
截图:
C++用栈判断回文串:
#include<iostream>
#include<string>
#include<cstdlib>
#include<stack>
using namespace std;
int main()
{
string a;
while(1)//多组输入
{
cin>>a;
int i,flag=1;//标志位为1
char b;
stack<char> q;
for(i=0;i<a.length();i++)
{
q.push(a[i]);//依次入栈
}
for(i=0;i<a.length();i++)
{
b=q.top();//取栈顶
if(b!=a[i]) {flag=0;break;}//栈顶与相应位字符不同,非回文,标志位改为0,退出循环
q.pop();//出栈
}
if(flag) cout<<"Yes"<<endl;//标志位为1,是回文
else cout<<"No"<<endl;//标志位改变,非回文
}
return 0;
}