LeetCode 1436. Destination City in F#

URL

https://leetcode.com/problems/destination-city/description/?envType=daily-question&envId=2023-12-15

Code

https://github.com/syohex/dotnet-study/blob/master/fsharp/leetcode/problems/1436/main.fsx

let destCity (paths: (string * string) list) : string =
    let rec destCity' cities froms =
        match cities with
        | [] -> failwith "never reach here"
        | city :: t -> if Set.contains city froms then destCity' t froms else city

    let cities = paths |> List.fold (fun acc (a, b) -> b :: a :: acc) []

    let froms = paths |> List.map fst |> Set.ofList
    destCity' cities froms