leetcode 125.验证回文串

⭐️ 题目描述

leetcode 125.验证回文串_第1张图片


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;
    }
};

你可能感兴趣的:(刷题,leetcode,c++,刷题)