欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C 栈

程序员文章站 2022-03-25 16:49:18
...

初始化栈:top = 0;
入栈:top++;s[top] = x;

  1. 对于奇偶不同的情况,中间位置往往相同,不同的是需要设置不同的next。
  2. 比较一个数组自己的某部分与另一部分,需要复制这个数组。

判断回文

#include<iostream>
#include<cstdio>
#include<cstring>
#define maxn 1000
using namespace std;

int main()
{
    char a[maxn],s[maxn];
    int len,mid,next;
    cin >> a;
    len = strlen(a);
    mid = len / 2 - 1; 
    if(len % 2 != 0)
        next = mid + 2;  
    else
        next = mid + 1; 
    //初始化栈
    int top = 0;
    //进栈
    for(int i = 0; i <= mid; i++)
        s[++top] = a[i];
    for(int i = next;i < len;i++)
        if(a[i] != s[top])
            break;
        else
            top--;
    if(top == 0)
        printf("yes\n");
    else
        printf("no\n");
    return 0;
}