网站建设网页制作,seo查询整站,企业官方网站案例,ui设计培训收费标准题目
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后#xff0c;短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。
字母和数字都属于字母数字字符。
给你一个字符串 s#xff0c;如果它是 回文串 #xff0c;返回 true #xff1b;否则…题目
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。
字母和数字都属于字母数字字符。
给你一个字符串 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 是一个空字符串 。
由于空字符串正着反着读都一样所以是回文串。
思路一筛选判断
代码一
c
class Solution {
public:bool isPalindrome(string s) {// 2023年9月22日 14:20// 思路复制一个新字符串遍历源字符串满足条件则加入新字符串。// 判断从0到一半依次遍历只要跟相应的字符相同即可string res;bool flag false;int i;for (i 0; i s.length(); i) {if ((s[i] a s[i] z) || (s[i] 0 s[i] 9)) {res s[i];}else if (s[i] A s[i] Z) {s[i] 32;res s[i];}}int len res.length();if(len 1){return true;}int j;for (j 0; j (len / 2); j) {if (res[j] ! res[len-1 - j]) {break;}}if (j (len / 2)) {flag true;}return flag; }
};
python
class Solution:def isPalindrome(self, s: str) - bool:res # 定义一个空字符串for ch in s: // 对字符串s进行依次遍历ch为遍历的当前字符if(ch.isalnum()): // 如果当前字符是字母或数字res ch.lower() // 若当前字符是字母则把它变为小写字母return res res[::-1] // 字符串反转比较
答案提供的两个函数
isalnum 判断一个字符是否是字母或者十进制数字若为字母或者数字则返回True(非0值)否者返回False(0) tolower、toupper
答案思路