LeetCode 680. Valid Palindrome II in F#
URL
leetcode.com/problems/valid-palindrome-ii
Code
github.com/syohex/dotnet-study/blob/master/..
let rec isPalindrome (cs: char []) (left: int) (right: int) : bool =
if left >= right then
true
else if cs.[left] <> cs.[right] then
false
else
isPalindrome cs (left + 1) (right - 1)
let validPalindrome (s: string) : bool =
let rec validPalindrome' (cs: char []) left right =
if left >= right then
true
else if cs.[left] <> cs.[right] then
isPalindrome cs (left + 1) right
|| isPalindrome cs left (right - 1)
else
validPalindrome' cs (left + 1) (right - 1)
let cs = s |> Seq.toArray
validPalindrome' cs 0 (cs.Length - 1)