Scala pattern Match 問題

分享 未结
0 0 1 9
初學者 2019-08-24发布
收藏 点赞

由於小弟我是scala新手,

目前遇到兩個題目不知道怎麼解 也限制不能用helper function 或if, loop 或 vars 跟 任何mutable data structure 只能使用Nil List.empty elem:: list 和 head tail 遞迴

第一個是 假設有一個list 是 ((1,2),(3),(),(4,5,6)) 要變成

(1,2,3,4,5,6)

def change(list: List[List[Int]]) : List[Int] ={}

第二個是 (1,3,5,6,7,9,4,11) 要 return (1,5,7,4) 這樣

def everytwo(list:List[Int]): List[Int]={}

回帖
  • 2019-08-26

    1、第1个直接使用flatten方法就可以了:

    def change(list: List[List[Int]]) : List[Int] = {
      list.flatten
    }
    

    2、第2个可以使用sliding方法或zipWithIndex方法。关于sliding方法,可参考:Scala集合基础:sliding方法介绍


    2