回文数的判断

算法思想:代码是将字符串全部入栈,然后扫描字符串进行比较,直到扫描到字符串尾部,该算法需要两次扫描字符串,效率不高。

可以改进代码,只将字符串的前半部分入栈,然后前半部分出栈与字符串后半部分比较,算法思想类似模式判断,再此不再赘述,此代码只需扫描字符串一次,效率高。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define max_size 100
typedef char ElemType;
typedef struct SqStack {ElemType data[max_size];int top;
};
void initial(SqStack& S) {S.top = -1;
}
bool isEmpty(SqStack S) {if (S.top == -1)return true;return false;
}
//入栈
bool Push(SqStack& S, ElemType e) {if (S.top + 1 == max_size)return false;S.data[++S.top]=e;return true;
}
//出栈
bool Pop(SqStack& S, ElemType &e) {if (S.top == -1)return false;e = S.data[S.top--];return true;
}
bool getTop(SqStack S, ElemType& e) {if (S.top == -1)return false;e = S.data[S.top];return true;
}
bool judgePalindrome(char* str) {SqStack S;initial(S);char* pMove1 = str,*pMove2=str;while (*pMove1 != '\0') {Push(S, *pMove1++);}char c;while (*pMove2 != '\0') {Pop(S, c);if (c != *pMove2)return false;pMove2 += 1;}return true;}
int main() {char str[max_size] = { '\0' };scanf("%s", str);if (judgePalindrome(str)) {printf("yes");}else {printf("no");}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/586756.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Golang Context是什么

一、这篇文章我们简要讨论Golang的Context有什么用 1、首先说一下Context的基本作用&#xff0c;然后在讨论他的实现 (1)数据传递&#xff0c;子Context只能看到自己的和父Context的数据&#xff0c;子Context是不能看到孙Context添加的数据。 (2)父子协程的协同&#xff0c;比…

python 成员方法的区别是什么

Python的静态方法和类成员方法都可以被类或实例访问&#xff0c;两者概念不容易理清&#xff0c;但还是有区别的&#xff1a; 1&#xff09;静态方法无需传入self参数&#xff0c;类成员方法需传入代表本类的cls参数&#xff1b; 2&#xff09;从第1条&#xff0c;静态方法是…

无法解析的外部符号,在xxxx中调用

这个函数在类里****没有正确定义&#xff1a; 1.头文件只有声明&#xff0c;没有实现 2.只有实现&#xff0c;没有声明 3.声明的和实现的&#xff0c;参数不对

SEO文章写作器,批量写作原创SEO收录文章

在当今数字化时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;已经成为了网站获得流量和曝光度的关键手段之一。而在SEO领域中&#xff0c;内容的质量和原创性是至关重要的。为了应对不断增长的内容需求&#xff0c;越来越多的人开始转向AI写作生成器&#xff0c;这些…

Nginx在Kubernetes集群中的进阶应用

简介 在现代DevOps环境中&#xff0c;Nginx作为负载均衡器与Kubernetes的Ingress资源的结合&#xff0c;为应用程序提供了强大的路由和安全解决方案。本文将深入探讨如何利用Nginx的灵活性和功能&#xff0c;实现高效、安全的外部访问控制&#xff0c;以及如何配置Ingress以优…

MySQL 优化及故障排查

目录 一、mysql 前置知识点 二、MySQL 单实例常见故障 故障一 故障二 故障三 故障四 故障五 故障六 故障七 故障八 三、MySQL 主从故障排查 故障一 故障二 故障三 四、MySQL 优化 1.硬件方面 &#xff08;1&#xff09;关于 CPU &#xff08;2&#xff09;关…

基于Springboot+Vue前后端分离的(学生信息)课程管理系统设计与实现+论文+PPT+指导搭建视频

介绍 系统设计是一个把软件需求转换成用软件系统表示的过程通过对目标系统的分析和研究&#xff0c;做出了学生信息管理系统的总体规划&#xff0c;这是全面开发系统的重要基础。在对学生信息管理系统全面分析调查的基础上&#xff0c;制定出学生信息管理系统的总体规划。系统…

jupyter加目录contrib nbextension 使用

jupyter在工作中使用很方便&#xff0c;可是一旦单个文件的内容多了&#xff0c;即使有markdown文本提醒&#xff0c;上下翻找依旧很费精力。这时&#xff0c;有个目录就显得至关重要了。 1 安装模块 打开anaconda的PowerShell&#xff08;带有Prompt的&#xff09;&#xff0…

lanbiew程序如何提高变量读取速度(全是干货)

闲来无事做了个测试&#xff0c;使用四种不同的方式生成一个10万个数的数组&#xff1a; 1.用局部变量生成一个十万个数的数组 2.用全局变量生成一个十万个数的数组 3.用应用程序目录生成一个十万个路径的数组 4.用属性节点的方式生成十万个数的数组 结果是&#xff1a;应用程…

Gmail多账号防封攻略,看这一篇就够了

您的业务活动需要多个 Gmail 帐户吗&#xff1f;出海畅游&#xff0c;Gmail账号是少不了的工具之一&#xff0c;可以关联到Twitter、Facebook、Youtube、Chatgpt等等平台&#xff0c;可以说是海外网络的“万能锁”。但是大家都知道&#xff0c;以上这些平台注册多账号如果产生关…

Java | Leetcode Java题解之第4题寻找两个正序数组的中位数

题目&#xff1a; 题解&#xff1a; class Solution {public double findMedianSortedArrays(int[] A, int[] B) {int m A.length;int n B.length;if (m > n) { return findMedianSortedArrays(B,A); // 保证 m < n}int iMin 0, iMax m;while (iMin < iMax) {int…

GitOps - 为 OpenShift GitOps 配置邮件通知

《OpenShift 4.x HOL教程汇总》 说明&#xff1a;本文已经 在OpenShift 4.15 文章目录 ArgoCD 的 Notification 功能简介启动 OpenShift GitOps 的 Notification 功能配置邮件通知验证参考 说明&#xff1a;先根据《OpenShift 4 之 GitOps&#xff08;1&#xff09;通过OpenSh…