当前位置:   article > 正文

C语言数据结构判断字符串是否是回文_数据结构判断回文

数据结构判断回文

判断字符串是否是回文通过把一半的字符串输入栈,再通过出栈一一与另一半对比,如果相等就继续,直到最后发现都能一一对应,则说明是回文

include <stdio.h>
#include <string.h>

#define MAX_SIZE 100

typedef struct {
    char items[MAX_SIZE];
    int top;
} Stack;

void initStack(Stack *s) {
    s->top = -1;
}

void push(Stack *s, char c) {
    s->items[++(s->top)] = c;
}

char pop(Stack *s) {
    return s->items[(s->top)--];
}

int main() {
    Stack s;
    char str[MAX_SIZE];
    int i, len, mid;
    int isPalindrome = 1;

    initStack(&s);

    printf("Enter a string: ");
    scanf("%s", str);

    len = strlen(str);
    mid = (len -1) / 2;//因为索引从0开始


    for (i = 0; i <= mid; i++)
    {
        push(&s, str[i]);
    }


    for (i = (len % 2 == 0) ? mid+1 : mid;i < len;i++)//如果是奇数,就是mid
        {
        if (str[i] != pop(&s)) {
            isPalindrome = 0; // Not a palindrome
            break;
        }
    }

    if (isPalindrome) {
        printf("The string is a palindrome.\n");
    } else {
        printf("The string is not a palindrome.\n");
    }
    return 0;
}
 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/934799
推荐阅读
相关标签
  

闽ICP备14008679号