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.coloradmin.cn/o/2461838.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!