
用栈实现回文字符串的判断
发布日期:2021-05-14 16:31:23
浏览次数:17
分类:精选文章
本文共 637 字,大约阅读时间需要 2 分钟。
用栈实现回文字符串的判断
Midlands
回文字符串是一个正读反读都相同的字符串,如“121”或“12321”。通过栈的后进先出特性,可以高效地判断字符串是否为回文。
读取字符串并求长度
首先读取输入字符串并求其长度。字符串存储在字符数组a
中,长度由len
表示。
char a[101]; int len; gets(a); len = strlen(a);
计算中点
回文的中点是字符串长度的一半减一,可以通过以下计算得到:
int mid = len / 2 - 1;
初始化栈
栈用于存储字符,顶部指针top
初始化为0。
top = 0;
推入前半部分字符至栈
将中点前面的字符一次性推入栈中。
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,字符串为回文。```如果top == 0,打印“yes!”,否则打印“no!”。``````าด```
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年05月05日 15时42分27秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
leetcode——区域和检索
2019-03-12
msfvenom的使用&免杀&外网渗透
2019-03-12
HTTP/2 协议详解
2019-03-12
grafana改用https登录
2019-03-12
使用jenkins进行项目的自动构建部署
2019-03-12
使用MySQLTuner-perl对MySQL进行优化
2019-03-12
2018年3月最新的Ubuntu 16.04.4漏洞提权代码
2021-05-15
异或交换两个数的值
2021-05-15
使用python绘出常见函数
2021-05-15
Golang AES加密
2019-03-12
Puppet的一些奇技淫巧
2019-03-12
foreman源NO_PUBKEY 6F8600B9563278F6
2019-03-12
亚马逊aws文档语法错误
2019-03-12
什么是5G?居然有人用漫画把它讲得如此接地气!
2019-03-12
Spring cloud --分布式配置中心组件Spring Cloud Config
2019-03-12
UE4接入Android第三方库2——通过JIN与GameActivity通信
2019-03-12
Unity Job System 2——并行处理数据
2019-03-12
BIG解决保险欺诈问题,开创数字化保险时代
2019-03-12
Apache JMeter5.3 压力测试
2019-03-12
maven打包多环境配置
2019-03-12