网站改中文,wordpress中文注册,成都网站制作网站设计,三亚网站建设公司上一篇#xff1a;力扣刷题笔记26——最小的k个数/快速排序学习/快排与冒泡的时间复杂度 文章目录 题目#xff1a;我的方法#xff1a;isalnum函数逆序string 题目#xff1a;
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后#xff0c;短语正着读和…上一篇力扣刷题笔记26——最小的k个数/快速排序学习/快排与冒泡的时间复杂度 文章目录 题目我的方法isalnum函数逆序string 题目
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。
字母和数字都属于字母数字字符。
给你一个字符串 s如果它是 回文串 返回 true 否则返回 false 。我的方法
前后指针如果是回文串那前后索引的结果肯定是一样的否则遇到一个不一样的就直接返回false。
class Solution {
public:bool isPalindrome(string s) {int lens s.length();if(lens1) return true;//如果只有一个那肯定是回文串int left 0,right lens-1;while(leftright){//如果s[left]不是字母或数字移到下一位if((tolower(s[left])-a25||tolower(s[left])-a0)(tolower(s[left])-09||tolower(s[left])-00)){left;continue;}//如果s[right]不是字母或数字移到下一位if((tolower(s[right])-a25||tolower(s[right])-a0)(tolower(s[right])-09||tolower(s[right])-00)){right--;continue;}//如果s[left]和s[right]一样则各移动一位if(tolower(s[left])tolower(s[right])){left;right--;}else{//如果s[left]和s[right]不一样则不是回文串return false;}}return true;}
};不足想不到合适的方法来确认是不是字母或数字所以if语句看着比较复杂。
isalnum函数
功能判断是否为数字或字母如果是则返回非零值否则返回0。 coutisalnum(a);cout isalnum(1);cout isalnum(0);cout isalnum(/);cout isalnum();cout isalnum( );逆序string
如何得到一个逆序的string变量。 (如果先得到只有数字和字母的字符串再得到其逆序也可以判断回文串。) string a da24r;string b(a.rbegin(), a.rend());cout b;