⭐️ 题目描述
🌟 leetcode链接:https://leetcode.cn/problems/valid-palindrome/
思路:
这道题只判断字符串中的字母与数字是否是回文。虽然小写大写字母可以互相转换,但是里面是含有数字字符的,所以先统一,把字符串中所有的字母都转换成大写或者小写,然后一个下标从左开始寻找一个下标从右开始寻找匹配的字符,直到都满足在判断是否相等若一直是相等则是回文,否则不是回文。
代码:
class Solution {
public:bool isPalindrome(string s) {// 全部统一为小写for (auto& val : s) {if (isupper(val)) {val += 32;}}int left = 0;int right = s.size() - 1;while (left < right) {while (left < right && !isalnum(s[left])) {left++;}while (left < right && !isalnum(s[right])) {right--;}// 判断是否相等if (s[left] == s[right]) {left++;right--;continue;}return false;}return true;}
};