Practical Programming
An Introduction to Computer Science
Using Python 3
(Pragmatic Programmers)
(Pragmatic Bookshelf)
Paul Gries (著) Jennifer Campbell (著)
Jason Montojo (著) Lynn Beighley (編集)
開発環境
- OS X Yosemite - Apple (OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- Python 3.4 (プログラミング言語)
Practical Programming: An Introduction to Computer Science Using Python 3 (Pragmatic Programmers) (Paul Gries (著)、Jennifer Campbell (著)、Jason Montojo (著)、Lynn Beighley (編集)、Pragmatic Bookshelf)のChapter 12(Designing Algorithms)、12.4(Exercises) 6.を解いてみる。
12.4(Exercises) 6.
コード(BBEdit)
sample6.py
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
def dutchFlag(colors):
i = 0
j = len(colors) - 1
green = 0
while i <= j:
if colors[i] == 'red':
colors[i], colors[green] = colors[green], colors[i]
i += 1
green += 1
elif colors[i] == 'green':
i += 1
elif colors[i] == 'blue':
colors[i], colors[j] = colors[j], colors[i]
j -= 1
if __name__ == '__main__':
import random
for x in range(10):
colors = (['red'] * random.randrange(5) +
['green'] * random.randrange(5) +
['blue'] * random.randrange(5))
random.shuffle(colors)
print(colors)
dutchFlag(colors)
print(colors, '\n')
入出力結果(Terminal, IPython)
$ ./sample6.py ['red', 'blue', 'green', 'blue', 'green', 'blue', 'blue'] ['red', 'green', 'green', 'blue', 'blue', 'blue', 'blue'] ['red', 'red', 'blue', 'blue', 'green', 'red', 'blue', 'green', 'green', 'green'] ['red', 'red', 'red', 'green', 'green', 'green', 'green', 'blue', 'blue', 'blue'] ['red', 'red', 'red', 'green', 'red', 'blue'] ['red', 'red', 'red', 'red', 'green', 'blue'] ['green', 'red', 'green', 'green', 'red', 'red', 'blue', 'red'] ['red', 'red', 'red', 'red', 'green', 'green', 'green', 'blue'] ['red', 'blue', 'green', 'red', 'blue', 'red', 'red', 'blue', 'green'] ['red', 'red', 'red', 'red', 'green', 'green', 'blue', 'blue', 'blue'] ['red', 'blue', 'green', 'green', 'red', 'red'] ['red', 'red', 'red', 'green', 'green', 'blue'] ['blue'] ['blue'] ['red', 'red', 'blue'] ['red', 'red', 'blue'] ['red', 'blue', 'red', 'blue', 'green', 'red', 'blue', 'red', 'blue'] ['red', 'red', 'red', 'red', 'green', 'blue', 'blue', 'blue', 'blue'] ['blue', 'green', 'green', 'green'] ['green', 'green', 'green', 'blue'] $
0 コメント:
コメントを投稿