leetcode 125题
时间: 2024-04-04 09:26:58 浏览: 126
LeetCode 125题是一个非常经典的题目,题目名称为"Valid Palindrome"(验证回文串)。题目要求判断给定的字符串是否是一个回文串,只考虑字母和数字字符,可以忽略字母的大小写。
解题思路如下:
1. 首先,我们可以将字符串中的非字母和数字字符去除,只保留字母和数字字符。
2. 然后,将字符串转换为小写字母,方便后续的比较。
3. 使用双指针的方法,一个指针从字符串的开头开始遍历,另一个指针从字符串的末尾开始遍历。
4. 比较两个指针指向的字符是否相等,如果不相等,则说明不是回文串;如果相等,则继续向中间移动指针。
5. 当两个指针相遇时,说明已经比较完整个字符串,且没有发现不相等的字符,即为回文串。
以下是示例代码:
```python
def isPalindrome(s):
# 去除非字母和数字字符,并转换为小写
s = ''.join(e for e in s if e.isalnum()).lower()
# 双指针比较
left, right = 0, len(s) - 1
while left < right:
if s[left] != s[right]:
return False
left += 1
right -= 1
return True
# 测试样例
s = "A man, a plan, a canal: Panama"
print(isPalindrome(s)) # 输出:True
```
阅读全文