栈主要讲究后进先出,就像吃薯片哈哈,代码如下,很简单只要一个一维数组几乎就差不多了:
//这是简单的回文判断字符串
#include<stdio.h>
#include<string.h>
int main()
{
char a[101];
int top=0,s[101],i;
int mid,len,next;
gets(a);
len=strlen(a);
mid=len/2-1;
for(i=0;i<=mid;i++){
s[++top]=a[i];
}
if(len%2==0)
next=mid+1;
else
next=mid+2;
for(i=next;i<len;i++){
if(s[top]!=a[i])
break;
top--;
}
if(top==0)
printf("YES");
else
printf("NO");
return 0;
}
下面是一个简单的判断括号回文串的代码:
#include <stdio.h>
#include <string.h>
int main()
{
char a[105],s[105];
int i,len,top;
gets(a);//
len = strlen(a);//
top = 0;//栈的初始化
for(i = 0;i < len;i++)
{
if(a[i]=='{'||a[i]=='('||a[i]=='[')
{
s[++top] = a[i];//左括号入栈 ( { [
}
else
{
if(a[i]=='}')
{
if(s[top]=='{')
{
top--;
}
else
{
printf("NO");
return 0;
}
}
else if(a[i]==')')
{
if(s[top]=='(')
{
top--;
}
else
{
printf("NO");
return 0;
}
}
else if(a[i]==']')
{
if(s[top]=='[')
{
top--;
}
else
{
printf("NO");
return 0;
}
}
}
}
if(top==0)
{
printf("YES");
}
else
{
printf("NO");
}
return 0;
}