Valid Palindrome
题目描述
验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
假定空字符串是有效的回文串。
示例
输入:"A man, a plan, a canal: Panama"
输出:true
解法
解法一:双指针
时间复杂度:
O(n)
空间复杂度:
O(1)
func isPalindrome(s string) bool {
s = strings.ToLower(s)
isOk := true
left, right := 0, len(s) - 1
for left < right {
if s[left] < '0' || s[left] > '9' && s[left] < 'a' || s[left] > 'z' {
left++
continue
}
if s[right] < '0' || s[right] > '9' && s[right] < 'a' || s[right] > 'z' {
right--
continue
}
if s[left] != s[right] {
isOk = false
break
}
left++
right--
}
return isOk
}
Last updated
Was this helpful?