判断回文串:
#include<cstdio>
#include<cstring>
char s[20],sta[20];
int main()
{
int i,j,t,top,l;
scanf("%d",&t);
while(t--)
{
top=0;
scanf("%s",s);
l=strlen(s);
for(i=0;i<=l/2;i++)
{
sta[top++]=s[i];
}
while(--top>0)
{
if(sta[top]!=s[l-1-top])
break;
}
if(top)
printf("no\n");
else
printf("yes\n");
}
return 0;
}
括号匹配:
#include<cstdio>
#include<stack>
#include<iostream>
using namespace std;
int main()
{
int i;
char str[100];
stack<char> s;
printf("输入序列:\n");
cin>>str;
for(i=0;str[i];i++)
{
if(str[i] == '('||str[i] == '['||str[i] == '{')
{
s.push(str[i]);
}
else if(str[i] == ')'||str[i] == ']'||str[i] == '}')
{
if(s.empty())
{
printf("括号不匹配1\n");
return 0;
}
else
{
char ch = s.top();
if((ch == '('&&str[i] == ')')||(ch == '['&&str[i] == ']')||(ch == '{'&&str[i] == '}'))
s.pop();
else
{
printf("括号不匹配2\n");
return 0;
}
}
}
}
printf("括号匹配\n");
return 0;
}