Leetcode Note: Go - Valid Palindrome II
Valid Palindrome II - LeetCode
https://leetcode.com/problems/valid-palindrome-ii/
- Go 言語で取り組んだメモ
所感
- 渡された string 値が回文なら true を return する
回答
Go 12ms 100% clear solution - LeetCode Discuss
https://leetcode.com/problems/valid-palindrome-ii/discuss/507206/Go-12ms-100-clear-solution
Go 12ms 100% clear solution - LeetCode Discuss
https://leetcode.com/problems/valid-palindrome-ii/discuss/507206/Go-12ms-100-clear-solution
func validPalindrome(s string) bool {
valid, l, r := isPalindrome(s, 0, len(s)-1)
if valid {
return true
}
if valid, _, _ := isPalindrome(s, l+1, r); valid {
return true
}
if valid, _, _ := isPalindrome(s, l, r-1); valid {
return true
}
return false
}
func isPalindrome(s string, l, r int) (bool, int, int) {
for l < r {
if s[l] != s[r] {
return false, l, r
}
l++
r--
}
return true, 0, 0
}
- isPalindrome を実装して、文字列の左端と右端を比較して回文を判定していく