URL
Summary Ranges - LeetCode
Code
https://github.com/syohex/dotnet-study/tree/master/fsharp/leetcode/challenge/202306/summary_ranges/main.fsx
let summaryRanges (nums: int list) : string list =
let rec summaryRanges' nums start prev acc =
match nums with
| [] ->
if start = prev then
(string start) :: acc |> List.rev
else
(sprintf "%d->%d" start prev) :: acc |> List.rev
| h :: t ->
if (h - 1) = prev then
summaryRanges' t start h acc
else
let acc' =
if start = prev then
(string start) :: acc
else
(sprintf "%d->%d" start prev) :: acc
summaryRanges' t h h acc'
match nums with
| [] -> []
| h :: t -> summaryRanges' t h h []