125. 验证回文串
- 题:验证回文串
-
解
思路很简单,两个指针,一个从前向后遍历,一个从后向前遍历,直到两个指针相遇。如果中间出现两个值不相同的情况,说明不是回文串。
-
Python
class Solution: def isPalindrome(self, s: str) -> bool: if s == "": return True ptr1 = 0 ptr2 = len(s)-1 while ptr1 < ptr2: if not s[ptr1].isalnum(): ptr1 += 1 elif not s[ptr2].isalnum(): ptr2 -= 1 elif s[ptr1].lower() != s[ptr2].lower(): return False else: ptr1 += 1 ptr2 -= 1 return True
-
Go
func isalnum(s byte) bool{ if 'a'<= s && s <= 'z'{ return true }else if 'A' <= s && s <= 'Z'{ return true }else if '0' <= s && s <= '9' { return true }else{ return false } } func isPalindrome(s string) bool { if s == ""{ return true } ptr1 := 0 ptr2 := len(s)-1 for ;ptr1<ptr2;{ if ! isalnum(s[ptr1]){ ptr1++ }else if ! isalnum(s[ptr2]){ ptr2-- }else if strings.ToLower(string(s[ptr1])) != strings.ToLower(string(s[ptr2])){ return false }else{ ptr1++ ptr2-- } } return true }