栈
来源:互联网 发布:java bigdecimal取整 编辑:程序博客网 时间:2024/06/05 23:03
栈的实现只需要一个一维数组和一个指向栈顶的变量top即可。通过top来对栈进行插入和删除操作。
判断一个字符串是否是回文。
若一个字符串是回文的,那么它必须是中间对称的,即求出mid。
再把mid之前的字符全部入栈,此处的栈是用来存储字符,实现栈的数组类型是字符数组即chars[101];初始化栈很简单,top=0即可。入栈的操作top++;s[top]=x;(假设需要入栈的字符暂存在字符变量x中),可以简写s[++top]=x;
接着判断是否是回文。将当前栈的字符依次出栈,看看是否与mid之后的字符一一匹配,如果能匹配则说明这个字符串是回文字符串,否则不是。
#include<stdio.h> #include<string.h> int main() { char a[101],s[101]; int i,len,mid,next,top; gets(a);//读入一个字符串 len=strlen(a)-1;//字符串长度 mid=len/2;//求字符串中点 top=0;//栈的初始化 for(i=0;i<=mid;i++)//将mid之前的字符依次入栈 s[++top]=a[i]; //判断字符串的长度是奇数还是偶数,并找出需要进行字符串匹配的起始下标 if(len%2==0) next=mid+1; else next=mid+2; //开始匹配 for(i=next;i<=len-1;i++) { if(a[i]!=s[top]) break; top--; } //如果top为0,则说明栈内所有字符都被一一匹配了。 if(top==0) printf("YES!"); else printf("NO!"); getchar();getchar();//用来暂停程序,以便查看程序输出内容 return 0; }
栈还可以用来进行匹配括号。
阅读全文
0 0
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- Javascript Hoisting( 变量提升)
- 学习极客的mongoose+express的笔记(2)
- iOS 读取图片 exif 信息
- 上拉加载
- Thread.currentThread()与this的区别
- 栈
- cdq分治(bzoj 1176: [Balkan2007]Mokia && bzoj 2683: 简单题)
- C语言栈的使用
- guzzle/guzzle 日常使用
- 禁止Ctrl+鼠标滚轴浏览器页面缩放
- Java的堆、栈和垃圾回收
- Android自定义View构造函数、自定义属性详解
- 关于retrofit 传值传null的处理(同样适用于okhttp)
- win7自定义共享文件夹名称