1. 程式人生 > >面試題--scala全排序過濾欄位

面試題--scala全排序過濾欄位

目錄

1、需求

2、程式碼

3、結果展示

————————————————————————————-

1、需求

求 1 to 4 的全排序, 2不能在第一位, 3,4不能在一起

2、程式碼

import util.control.Breaks._
/**
  * Created by Administrator on 2017/9/22 0022.
  *
  * 1 to 4 的全排序
  * 2不能在第一位
  * 3,4不能在一起
  *
  */

object LocalSpark extends App{

   override def main(args: Array[String]): Unit = {

    List(1
,2,3,4).permutations.filter(list=>list(0) != 2).map(list=>{ var num =0 breakable{ for(x<- 0 to (list.size-1)){ if(list(x)==3 && x<3 && list(x+1)==4) break if(list(x)==3 && x>0 && list(x-1)==4) break num +=1 } } if
(num <4){ List() }else{ list } }).filter(list=>list.size>3).foreach(println(_)) } }

3、結果展示

List(1, 3, 2, 4)
List(1, 4, 2, 3)
List(3, 1, 2, 4)
List(3, 1, 4, 2)
List(3, 2, 1, 4)
List(3, 2, 4, 1)
List(4, 1, 2, 3)
List(4, 1, 3, 2)
List(4, 2, 1, 3)
List(4, 2, 3, 1)