啊哈!算法—栈

来源:互联网 发布:程序员的缺点 编辑:程序博客网 时间:2024/06/05 07:40

判断是否是回文

思路:利用栈的特点。

#include <iostream>#include <stdio.h>#include <string.h>using namespace std;int main(){    char a[101],s[101];    int i,len,mid,next,top;    gets(a);   //读入一行字符串    len=strlen(a);    mid=len/2-1;    //将哪部分入栈的标志    top=0;   //栈的初始化    //将mid前的字符依次入栈    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-1;i++)    {        if(a[i]!=s[top])            break;        top--;    }    //如果top的值为0,则说明栈内所有的字符都一一匹配了    if(top==0)        cout<<"YES";    else        cout<<"NO";    return 0;}
运行结果:



0 0
原创粉丝点击