LeetCode 2125. Number of Laser Beams in a Bank in F#

URL

https://leetcode.com/problems/number-of-laser-beams-in-a-bank/description/?envType=daily-question&envId=2024-01-03

Code

https://github.com/syohex/dotnet-study/blob/master/fsharp/leetcode/challenge/202401/number_of_laser_beams_in_a_bank/main.fsx

let numberOfBeams (bank: string list) : int =
    let rec numberOfBeams' bank prev acc =
        match bank with
        | [] -> acc
        | h :: t ->
            let ones = Seq.filter ((=) '1') h |> Seq.length

            if ones > 0 then
                numberOfBeams' t ones (acc + (prev * ones))
            else
                numberOfBeams' t prev acc

    numberOfBeams' bank 0 0