轉到內容

99 道榆木問題/第 10 道問題/解決方案

來自維基文庫,面向開放世界的開放書籍

解決方案 1:遞迴版本

runLengthEncode list =
    case list of
        [] -> []
        [ x ] -> [ (x, 1) ]
        x :: xs ->
            case runLengthEncode xs of
                [] -> []
                (x', n) :: xs' ->
                    if x == x' then
                        (x, n + 1) :: xs'
                    else
                        ( x, 1 ) :: (x', n) :: xs'
華夏公益教科書