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

力扣刷题(第二十九天)

灵感来源 

- 保持更新,努力学习

- python脚本学习

验证回文串

解题思路

验证回文串的核心在于判断一个字符串是否从前向后和从后向前读都是一样的。不过,题目通常会有两个主要限制条件:

  1. 忽略大小写:比如 "A man" 和 "a man" 被视为相同字符。
  2. 只考虑字母和数字:需要过滤掉空格、标点符号等非字母数字字符。

最直接的方法是使用双指针法:

  1. 预处理字符串:将字符串中的所有字母转为小写,并过滤掉非字母数字的字符。
  2. 双指针遍历:使用两个指针,一个从字符串头部开始,一个从尾部开始,逐个比较字符是否相同。如果遇到不相同的字符,则返回 False;如果所有字符都相同,则返回 True

这种方法的时间复杂度是 O(n),其中 n 是字符串的长度,因为只需要遍历一次字符串。空间复杂度是 O(n),主要用于存储预处理后的字符串。

class Solution:def isPalindrome(self, s: str) -> bool:# 过滤非字母数字字符并转换为小写filtered_chars = [c.lower() for c in s if c.isalnum()]# 双指针法验证回文串left, right = 0, len(filtered_chars) - 1while left < right:if filtered_chars[left] != filtered_chars[right]:return Falseleft += 1right -= 1return True

逐行解释

class Solution:def isPalindrome(self, s: str) -> bool:# 过滤非字母数字字符并转换为小写# isalnum() 方法检查字符是否为字母或数字# lower() 方法将字符转换为小写filtered_chars = [c.lower() for c in s if c.isalnum()]# 初始化左右指针,分别指向过滤后字符串的首尾left, right = 0, len(filtered_chars) - 1# 双指针遍历:当左指针小于右指针时继续循环while left < right:# 比较当前左右指针指向的字符if filtered_chars[left] != filtered_chars[right]:# 若不相等,直接返回 False(不是回文串)return False# 左指针右移一位left += 1# 右指针左移一位right -= 1# 所有字符均匹配,返回 True(是回文串)return True

http://www.lryc.cn/news/2378443.html

相关文章:

  • chrome 浏览器插件 myTools, 日常小工具。
  • Leaflet使用SVG创建动态Legend
  • 智慧校园(含实验室)智能化专项汇报方案
  • 第三十四节:特征检测与描述-SIFT/SURF 特征 (专利算法)
  • ORACLE数据库实例报错ORA-00470: LGWR process terminated with error宕机问题分析报告
  • 【前端优化】vue2 webpack4项目升级webpack5,大大提升运行速度
  • Nginx应用场景详解与配置指南
  • vue2 切换主题色以及单页面好使方法
  • React学习———CSS Modules(样式模块化)
  • MCP 与 Cloudflare 的结合:网络安全的新高度
  • JavaScript入门【1】概述
  • PyQt5 的使用
  • JavaScript【6】事件
  • STM32F10xx 参考手册
  • 使用Docker部署Nacos
  • 深度学习中ONNX格式的模型文件
  • TIFS2024 | CRFA | 基于关键区域特征攻击提升对抗样本迁移性
  • Redis 发布订阅模式深度解析:原理、应用与实践
  • 环形缓冲区 ring buffer 概述
  • 飞帆控件 post or get it when it has get
  • SQL里where条件的顺序影响索引使用吗?
  • SAP学习笔记 - 开发豆知识02 - com.sap.cds.services.cds.CdsService 废止,那么用什么代替呢?
  • OpenResty 深度解析:构建高性能 Web 服务的终极方案
  • 什么是路由器环回接口?
  • OpenHarmony:开源操作系统重塑产业数字化底座
  • 【MySQL进阶】如何在ubuntu下安装MySQL数据库
  • 【数据结构】_二叉树
  • 给图表组件上点“颜色” —— 我与 CodeBuddy 的合作记录
  • 使用 YOLO 结合 PiscTrace 实现股票走势图像识别
  • OpenCV中的光流估计方法详解