酷代码 AI
菜单
服务商

编译一个完整的代码利用顺序栈的基本运算判断一个字符串是否为回文。

以下是使用 C 语言编写的利用顺序栈判断一个字符串是否为回文的代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_SIZE 100 // 定义顺序栈结构体 typedef struct { char data[MAX_SIZE]; int top; } Stack; // 初始化栈 void initStack(Stack *s) { s->top = -1; } // 判断栈是否为空 int isEmpty(Stack *s) { return s->top == -1; } // 判断栈是否已满 int isFull(Stack *s) { return s->top == MAX_SIZE - 1; } // 入栈 void push(Stack *s, char c) { if (!isFull(s)) { s->data[++s->top] = c; } else { printf("Stack is full!\n"); } } // 出栈 char pop(Stack *s) { if (!isEmpty(s)) { return s->data[s->top--]; } else { printf("Stack is empty!\n"); return '\0'; } } // 判断字符串是否为回文 int isPalindrome(char *str) { Stack s; initStack(&s); int len = strlen(str); int mid = len / 2; for (int i = 0; i < mid; i++) { push(&s, str[i]); } if (len % 2!= 0) { mid++; } for (int i = mid; i < len; i++) { if (pop(&s)!= str[i]) { return 0; } } return 1; } int main() { char str[] = "race a car"; if (isPalindrome(str)) { printf("%s 是回文\n", str); } else { printf("%s 不是回文\n", str); } return 0; } ``` 这段代码首先定义了一个顺序栈的数据结构,然后实现了相关的操作函数。`isPalindrome`函数通过将字符串前半部分入栈,然后与后半部分依次比较来判断是否为回文。 [2024-10-24 11:35:05 | AI写代码神器 | 548点数解答]

相关提问
实用工具查看更多
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]
数独游戏 [娱乐类]
经典推箱子 [娱乐类]
AI摸鱼五子棋 [娱乐类]