challenge あみだくじ

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

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

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

Posted feedbacks - Python

普通に。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
import sys

def main():
    if not len(sys.argv) == 2:
        sys.stderr.write("usage: input_file_name\n")
        return
    a = None
    for line in (line.rstrip() for line in open(sys.argv[1])):
        print line
        if a is None: # first line
            a = list(line)
        else: # after second line
            for i in xrange(1, len(a), 2):
                if line[i] == '-':
                    a[i - 1], a[i + 1] = a[i + 1], a[i - 1]
    print "".join(a)

if __name__ == '__main__':
    main()

Index

Feed

Other

Link

Pathtraq

loading...