当前位置: 首页 > news >正文

双指针-125. 验证回文串

125. 验证回文串

如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。

字母和数字都属于字母数字字符。

给你一个字符串 s,如果它是 回文串 ,返回 true ;否则,返回 false 

示例 1:

输入: s = "A man, a plan, a canal: Panama"
输出:true
解释:"amanaplanacanalpanama" 是回文串。

示例 2:

输入:s = "race a car"
输出:false
解释:"raceacar" 不是回文串。

示例 3:

输入:s = " "
输出:true
解释:在移除非字母数字字符之后,s 是一个空字符串 "" 。
由于空字符串正着反着读都一样,所以是回文串。

提示:

  • 1 <= s.length <= 2 * 105
  • s 仅由可打印的 ASCII 字符组成

不是哥们,双指针写不明白了。。。。。。。。。 

class Solution {
public:bool isPalindrome(string s) {int p = 0;int q = s.length() - 1;while (p < q) {// 跳过非字母或数字字符while (p < q && !isalnum(s[p])) p++;while (p < q && !isalnum(s[q])) q--;// 比较两个字母或数字,忽略大小写if (tolower(s[p]) != tolower(s[q])) {return false;}p++;q--;}return true;}
};

SQL:

s[i]=tolower(s[i])

tolower(s[i]) == tolower(s[i])

isalpha(s[i])用来判断一个字符是否为字母
isalnum用来判断一个字符是否为数字或者字母,也就是说判断一个字符是否属于a~ z||A~ Z||0~9。
isdigit() 用来检测一个字符是否是十进制数字0-9
islower()用来判断一个字符是否为小写字母,也就是是否属于a~z。
isupper()和islower相反,用来判断一个字符是否为大写字母。

 


http://www.mrgr.cn/news/24636.html

相关文章:

  • 化工原料环保能源网站模板整站打包下载
  • QMT软件怎么申请开通?QMT软件到底是谁在用啊?QMT量化软件K线驱动介绍
  • LeetCode之常用函数
  • LINQ中的select
  • 5. 最长回文子串
  • 结构体的字节对齐方式(__attribute_pack(packed))#pragma pack())
  • 刀法依旧精准,iPhone 16 :4大遗憾,有点小失望
  • Linux编译器-gcc/g++使用
  • 分享面试题- DDD中事务处理放在哪一层?
  • 反馈的图形化-尝试建立图形化
  • 象过河仓库管理软件,轻松实现无纸化录入,自动化记账
  • 算法设计与分析(二分查找算法
  • 【研赛论文】数学建模2024华为杯论文word/latex模板
  • UniApp低代码-颜色选择器diy-color-picker-代码生成器
  • 完整指南:CNStream流处理多路并发框架适配到NVIDIA Jetson Orin (四) 运行、调试、各种问题解决
  • 起底“进制基数”:从“十根指数”到“无限可能”
  • 使用人力劳务灵工安全高效的发薪工具
  • Web server failed to start. Port XXX was already in use.
  • 蓝桥杯18小白第5题
  • MySQL 8.0授权语法变更及解决方案‌