PythonでBest Cow Line
N文字の文字列sが与えられ、N文字の文字列Tを作ります。はじめはTは長さ0の文字列で次のいずれかの操作が行えます。
・Sの先頭を1文字削除し、Tの末尾に追加する
・Sの末尾を1文字削除し、Tの末尾に追加する
辞書順比較ができるだけ小さくなるようにTを作ってください。
pythonで書いてみたら文字列のスライスを多用する結果になった
# coding=utf-8 def best_cow_line(s): T = [] while(s): if s <= s[::-1]: T.append(s[0]) s = s[1:] else: T.append(s[-1:]) s = s[:-1] return ''.join(T) print best_cow_line("ACDBCB") # => ABCBCD