challenge あみだくじ

次のような書式で与えられた「あみだくじ」があります。
(あみだくじはコード中に埋め込んでも、標準入力や
外部ファイルから読み込んでも、書きやすい方法でかまいません)

A B C D E
| | |-| |
|-| | |-|
| |-| |-|
|-| |-| |
|-| | | |

このあみだくじをたどって
A B C D E
| | |-| |
|-| | |-|
| |-| |-|
|-| |-| |
|-| | | |
B D C A E
のように結果を表示させるプログラムを作ってください。

Posted feedbacks - Scala

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
def amida(as:String) = {
  val h::t = as.trim.split("\n").toList
  val r = h.toArray
  t.foreach(_.toList.zipWithIndex.filter(_._1=='-').foreach{case (_,i) =>
    var tmp = r(i-1)
    r(i-1) = r(i+1)
    r(i+1) = tmp
  })
  h::t:::List(r.mkString("")) mkString "\n"
}

val a = """
A B C D E
| | |-| |
|-| | |-|
| |-| |-|
|-| |-| |
|-| | | |
"""

println(amida(a))

Index

Feed

Other

Link

Pathtraq

loading...