面试经典题---125.验证回文串

125.验证回文串

我的解法:

双指针法:

首先使用left和right两个指针分别指向字符串首尾;

外部while循环保证 left<right,内部分别使用while循环找出此时最左和最右的字母数字字符(使用自定义函数 isLegal 来判断字符是否是大小写字母或数字,可以直接用c++自带的isalnum函数);

比较两指针所指向字符的小写形式是否一致,不同则直接返回false;

cpp 复制代码
class Solution {
    bool isLegal(char ch){
        if((ch >= '0' && ch <= '9') ||
            (ch >= 'A' && ch <= 'Z') ||
            (ch >='a' && ch <= 'z')){
            return true;
        }
        return false;
    }
public:
    bool isPalindrome(string s) {
        int n = s.size();
        int left = 0, right = n - 1;
        while(left < right){
            while(left < right && !isLegal(s[left])){
                left++;
            }
            while(left < right && !isLegal(s[right])){
                right--;
            }
            if(left < right){
                if(tolower(s[left]) != tolower(s[right])){
                    return false;
                }
                left++;
                right--;
            }
        }
        return true;
    }
};
相关推荐
我不是懒洋洋2 分钟前
从零实现一个分布式监控:Prometheus的核心设计
c++
An_s10 分钟前
c++对接pdfium(一)win系统篇
开发语言·c++
众少成多积小致巨23 分钟前
C++ 规范参考(上)
c++
QXWZ_IA1 小时前
桥梁数字孪生怎么落地?
人工智能·科技·算法·智能硬件·政务
Kel1 小时前
输出层与反分词(Output Layer & Detokenization)
人工智能·算法·架构
陕西企来客1 小时前
2026年7月技术好GEO优化方案:算法适配与内容策略
人工智能·算法·机器学习·技术好geo优化
风栖柳白杨2 小时前
【面试】AI算法工程师_空白自测版本
人工智能·算法·面试
闪电悠米3 小时前
力扣hot100-73.矩阵置零-标记数组详解
算法·leetcode·矩阵
栋***t3 小时前
从“纸质试卷”到“AI智能组卷”,麦塔在线考试系统如何重构出题逻辑?
java·大数据·人工智能·算法·重构
wabs6663 小时前
关于图论【卡码网100.最大岛屿的面积的思考】
数据结构·算法·图论