当前位置: 首页 > news >正文

[验证回文串]

在这里插入图片描述

思路分析

1. 字符过滤与标准化
string s1;
for (int i = 0; i < n; i++) {if ((s[i] >= '0' && s[i] <= '9') || (s[i] >= 'a' && s[i] <= 'z')) {s1 += s[i];  // 保留数字和小写字母} else if (s[i] >= 'A' && s[i] <= 'Z') {s1 += (s[i] + 32);  // 大写字母转小写}
}
  • 过滤逻辑
    • 保留数字('0'-'9')和小写字母('a'-'z')。
    • 将大写字母('A'-'Z')转换为小写(通过 ASCII 码 +32)。
  • 结果:生成只包含字母数字且全小写的字符串 s1
2. 回文验证
int left = 0, right = n1 - 1;
while (left < right) {if (s1[left] == s1[right]) {left++;right--;} else {return false;  // 发现不匹配立即返回}
}
return true;
  • 双指针法
    • left 从头部开始,right 从尾部开始。
    • 如果字符相等,向中间移动指针;否则直接返回 false
  • 终止条件
    • left >= right 时,说明所有字符均匹配,返回 true

class Solution {
public:bool isPalindrome(string s) {string s1;int n=s.size();for(int i=0;i<n;i++){if((s[i]>='0'&&s[i]<='9')||(s[i]>='a'&&s[i]<='z')){s1+=s[i];}else if(s[i]>='A'&&s[i]<='Z'){s1+=(s[i]+32);}}int n1=s1.size();int left=0,right=n1-1;while(left<right){if(s1[left]==s1[right]){left++;right--;}else{return false;}}return true;}
};
http://www.lryc.cn/news/611405.html

相关文章:

  • C#案例实战
  • LeetCode——2411. 按位或最大的最小子数组长度
  • MCP与Function Calling
  • MySQL间隙锁在查询时锁定的范围
  • MinIO02-Docker安装
  • AI编程新时代:从氛围编程到上下文编程的深度实践和思考
  • GPS信号捕获尝试(上)
  • 快接龙 | 要如何对用户的接龙频次进行系统硬控
  • MongoDB 从3.4.0升级到4.0.0完整指南实战-优雅草蜻蜓I即时通讯水银版成功升级-卓伊凡|bigniu
  • 【文本左右对齐】
  • 【web自动化测试】实战
  • Python基础框架
  • WebRTC音视频编码模块深度解析:从编解码器到自适应码率控制(2025技术实践)
  • 前端包管理器深度对比
  • 普通树状数组
  • 贪心算法学习 1
  • Zabbix 企业级高级应用
  • 风丘助力混合动力汽车工况测试:精准采集整车信号解决方案
  • VNC连接VirtualBox中的Ubuntu24.04 desktop图形化(GUI)界面
  • 2025年渗透测试面试题总结-01(题目+回答)
  • GitHub Models:为开源AI项目解决推理难题,让AI更易用、更普及
  • css初学者第三天
  • MySQL 如何优化慢查询
  • Redis中的sdshdr的len和alloc那块的知识点详解
  • 前端记录项目中用到的js
  • python可视化--Seaborn图形绘制方法和技巧,Bokeh图形绘制方法和技巧
  • 最新基于Python科研数据可视化实践技术
  • 磁悬浮转子振动控制:主动电磁力如何成为高速旋转的“振动克星”
  • css动态样式
  • 【Git学习】入门与基础