challenge あみだくじ

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

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

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

Posted feedbacks - Smalltalk

Squeak Smalltalk で。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
| amida result |
amida := 'A B C D E
| | |-| |
|-| | |-|
| |-| |-|
|-| |-| |
|-| | | |'.

result := nil.
amida linesDo: [:line |
    result ifNil: [result := line subStrings] ifNotNil: [
        (2 to: line size by: 2) do: [:idx |
            (line at: idx) = $- ifTrue: [result swap: idx // 2 with: idx // 2 + 1]]]].
^result   "=> #('B' 'D' 'C' 'A' 'E') "

Index

Feed

Other

Link

Pathtraq

loading...