DEV Community

Discussion on: Daily Challenge #136 - The Deaf Rats of Hamelin

Collapse
 
nickholmesde profile image
Nick Holmes • Edited

Done very quickly, but works.

F#

let deafRats s=
    let rec inner s (piper, deaf) =
        if s = "" then
            deaf
        else
            match s.[0..1] with
            | x when x.[0] = 'P' -> inner s.[1..] (1, deaf)
            | "O~" -> inner s.[2..] (piper, deaf + (1-piper))
            | "~O" -> inner s.[2..] (piper, deaf + piper)
            | _ -> inner s.[1..] (piper, deaf)

    inner s (0, 0)
Enter fullscreen mode Exit fullscreen mode