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

LeetCode 125. Valid Palindrome 题解

LeetCode 125. Valid Palindrome 题解

题目描述

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。

示例 1:

输入: "A man, a plan, a canal: Panama" 输出: true 解释:"amanaplanacanalpanama" 是回文串

示例 2:

输入: "race a car" 输出: false 解释:"raceacar" 不是回文串

解题思路

双指针法:

  • 使用左右指针分别从字符串的两端向中间移动
  • 跳过非字母和数字的字符
  • 比较左右指针指向的字符(忽略大小写)

代码实现

def isPalindrome(s): left, right = 0, len(s) - 1 while left < right: # 跳过非字母和数字的字符 while left < right and not s[left].isalnum(): left += 1 while left < right and not s[right].isalnum(): right -= 1 # 比较字符(忽略大小写) if s[left].lower() != s[right].lower(): return False left += 1 right -= 1 return True

复杂度分析

  • 时间复杂度:O(n)
  • 空间复杂度:O(1)

测试案例

# 测试案例 1 assert isPalindrome("A man, a plan, a canal: Panama") == True # 测试案例 2 assert isPalindrome("race a car") == False # 测试案例 3 assert isPalindrome("") == True # 测试案例 4 assert isPalindrome("a") == True

总结

本题是字符串处理的经典问题。

关键点:

  • 双指针技巧
  • 字符类型判断
  • 大小写处理
  • 边界条件处理

通过本题可以深入理解双指针在字符串处理中的应用。

http://www.jsqmd.com/news/555254/

相关文章:

  • 手把手教你用Vivado HLS和Verilog在ZYNQ FPGA上跑通第一个CNN:从C代码到硬件加速的完整流程
  • 保姆级教程:用Docker Desktop和Ollama在本地跑通DeepSeek-R1,附BGE-M3嵌入模型配置
  • Qwen3.5-27B部署教程(Docker进阶):自定义模型路径、挂载外部存储与日志卷
  • 【Eviews实战指南】异方差诊断与加权最小二乘法优化策略
  • 鸿蒙Hi3861开发板还能这么玩?手把手教你用Wi-Fi IoT套件做个智能家居报警器
  • Multisim 13.0 仿真 LC 振荡器:从起振到稳定,手把手教你分析波形与频率稳定度
  • 战双帕弥什智能化解决方案:MAA_Punish自动化工具全指南
  • 告别盲调!用VSCode+GDB图形化界面调试ESP32,比命令行高效10倍
  • DeepChem:AI如何革新传统药物发现与化学研究?
  • Python如何获取内存使用情况
  • Whisper-large-v3开源大模型部署教程:无需Docker,纯Python一键启动方案
  • 阿里云通义千问Qwen-Long模型文件上传满了?手把手教你用Python脚本清理云端文件
  • ORB SLAM3词袋加载优化:从txt到bin的极速切换(附完整代码修改指南)
  • Matlab绘图小技巧:只保留box图的左右下边框,让图表更清爽(附完整代码)
  • LeetCode 49. Group Anagrams 题解
  • 解决数字记忆碎片化的创新方案:GetQzonehistory让社交数据成为可触摸的时光胶囊
  • 智能提取与效率革命:extract-video-ppt深度技术指南
  • TerosHDL:现代硬件设计的高效生产力工具集
  • 2026反转:被看不起的C语言,开发者时薪竟比Python高2-3倍
  • CLIP ViT-H-14图像相似度计算案例:同一建筑不同季节/天气/角度匹配
  • 小白友好!Z-Image-Turbo文生图镜像详细使用教程
  • Android Q 图形系统探秘:从 View 到 Surface,一次点击背后的跨进程之旅
  • 终端更新完全指南:从基础更新到前沿尝鲜
  • 终极命令行数据库管理神器:3分钟快速上手 dblab
  • 2024年鲲鹏云技术实战:从应用移植到性能调优全流程解析
  • AI 开发实战:技术支持流程里,怎么让 AI 真正减负
  • 告别手动队列!ROS2多传感器同步新方案:message_filters与rclcpp的完美配合
  • Keil4 STC15浮点运算踩坑实录:如何避免数据类型转换导致的诡异错误
  • 北京高端腕表真假鉴定全解析:从百达翡丽到理查德米勒的鉴真科学与六大城市联保 - 时光修表匠
  • Open InterpreterERP对接:库存更新脚本自动化部署