python_day_12:20180813
125. 验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
https://leetcode-cn.com/problems/valid-palindrome/description/
思路:
先把字符串中的数字和字母提取出来放到新列表中,然后从首位两个方向遍历比较元素,来判断是否是回文串
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | class Solution: def isPalindrome( self , s): """ :type s: str :rtype: bool """ strs = [] for letter in s: if letter.isalpha() or letter.isdigit(): strs.append(letter.lower()) if len (strs)> 1 : for j in range ( int ( len (strs) / 2 ) + 1 ): if strs[j]! = strs[ - j - 1 ]: return False return True |
680. 验证回文字符串 Ⅱ
给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。
https://leetcode-cn.com/problems/valid-palindrome-ii/description/
思路:
题目要求最多删除一个字符,先进行双向遍历判断,找出相异位置,然后生成两个子串,分别是删掉前一个相异点和后一个相异点得到,最后用“或”条件来判断两个子串是否有回文字符串
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | class Solution: def validPalindrome( self , s): """ :type s: str :rtype: bool """ if len (s)< = 2 : return True s1 = "" s2 = "" for i in range ( len (s) / / 2 + 1 ): if s[i] ! = s[ - i - 1 ]: s1 = s[:i] + s[i + 1 :] if i > 0 : s2 = s[: - i - 1 ] + s[ - i:] else : s2 = s[: - 1 ] break return s1 = = s1[:: - 1 ] or s2 = = s2[:: - 1 ] |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探秘 MySQL 索引底层原理,解锁数据库优化的关键密码(下)
· 大模型 Token 究竟是啥:图解大模型Token
· 35岁程序员的中年求职记:四次碰壁后的深度反思
· 继承的思维:从思维模式到架构设计的深度解析
· 如何在 .NET 中 使用 ANTLR4
· BotSharp 5.0 MCP:迈向更开放的AI Agent框架
· 分享 3 款基于 .NET 开源且免费的远程桌面工具
· 在线聊天系统中的多窗口数据同步技术解密
· 2025,回顾出走的 10 年
· 【保姆级教程】windows 安装 docker 全流程