Due to the nature of this problem, we don’t shy away from mutation for performance gains. For example, sorting the names array in place. The most novel part of this implementation is calculating uppercase alphabetical position based on character to integer conversions.
let problem22b = let text = System.IO.File.ReadAllText("names.txt") let names = text.Split([|',';'"'|], System.StringSplitOptions.RemoveEmptyEntries) names |> Array.sortInPlace seq { for i in 0..names.Length-1 do yield (i+1) * (names.[i] |> Seq.sumBy (fun c -> (int c) - 64)) } |> Seq.sum
No comments:
Post a Comment