
力扣125. 验证回文串-C语言实现-简单题
发布日期:2021-05-09 00:31:14
浏览次数:14
分类:博客文章
本文共 1070 字,大约阅读时间需要 3 分钟。
题目
文本
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama"
输出: true
示例 2:
输入: "race a car"
输出: false
来源:力扣(LeetCode)
模板
bool isPalindrome(char * s){}
解题
分析
题目中对于回文是只验证对于数字和字母的回文判断。所以需要对于符号以及其他不相干的元素进行革除。定义最后一个元素的下标,来进行对比
int n = strlen(str) - 1;
同时,对于元素遍历从前向后是首元素,就用普通的遍历即可,而遍历的长度不能像简单的判断回文一样n/2,因为对于内部的元素组成我们不知道他的有效部分在哪,所以要遍历到最后一个元素。同时进行对于元素的核查,不满足的就跳过该元素。
for (int i = 0; i <= n;) { if (!isalnum(str[i])) { i++; continue; } if (!isalnum(str[n])) { n--; continue; } }
然后就是对应前后元素的核验,不满足回文条件的就返回false。
if (tolower(str[i]) != tolower(str[n])) return false;
完整代码
bool isPalindrome(char *str){ int n = strlen(str) - 1; for (int i = 0; i <= n;) { if (!isalnum(str[i])) { i++; continue; } if (!isalnum(str[n])) { n--; continue; } if (tolower(str[i]) != tolower(str[n])) return false; i++; n--; } return true;}
运行结果
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年03月31日 08时57分11秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
开发小白也毫无压力的hexo静态博客建站全攻略 - 躺坑后亲诉心路历程
2019-03-06
java例题_24 逆向输入数字
2019-03-06
不管人生怎么走,都需要实时回头看看
2019-03-06
golang基础--类型与变量
2019-03-06
Bitcoin区块链攻击方式
2019-03-06
.NetCore外国一些高质量博客分享
2019-03-06
Mysql的基本操作(一)增、删、改
2019-03-06
解决WebRTC中不同的浏览器之间适配的问题
2019-03-06
python中while循环和for循环的定义和详细的使用方法
2019-03-06
HTML5 之拖放(drag与drop)
2019-03-06
软件项目技术点(2)——Canvas之坐标系转换
2019-03-06
深入理解JavaScript函数
2019-03-06
!function(){}()
2019-03-06
【spring源码系列】之【xml解析】
2019-03-06
用了这个jupyter插件,我已经半个月没打开过excel了
2019-03-06
(在模仿中精进数据可视化07)星球研究所大坝分布可视化
2019-03-06
(数据科学学习手札112)Python+Dash快速web应用开发——表单控件篇(上)
2019-03-06
(数据科学学习手札02)Python与R在循环语句与条件语句上的异同
2019-03-06
(数据科学学习手札06)Python在数据框操作上的总结(初级篇)
2019-03-06
(数据科学学习手札23)决策树分类原理详解&Python与R实现
2019-03-06