名もなき未知

エンジニアリングとか、日常とかそういうのをまとめる場所。アクセス解析のためGAを利用、Googleに情報を送信しています。商品紹介のためAmazonアフィリエイトを利用、Amazonに情報を送信しています。記事に関しては私が書いていない引用文を除いて自由にご利用ください。

SRM 660 Div.2 Easy(2015/06/12)

TopCoderの参加の仕方わからんないや…(白目)ってなっているうちに締め切られていた.
知らないうちにWEBからAraneに行けるようになっているようだ….よくわからんJavaのソフト起動しなくて住むのはタスカル.

で,仕方がないから試しに一問解きました.practiceにあった問題.

問題

http://community.topcoder.com/stat?c=problem_statement&pm=13814

文字列と置き換え可能回数が提示され,文字列を回転させつつ,文字列を置き換えた時に辞書順最小となるようなものを求める問題.
まず.文字列のシフトを考え,そのあと文字列の置き換え.辞書順最小なので"a"で置き換えればよいが,"a"を"a"で置き換えてもしかたがないので,"a"だったら次を置き換えるようにする.
こうして文字列をシフトさせながらすべて試すことで答えが得られる.

で,TopCoderの問題を解いてみた感想なのですが,やっぱり英語なのが個人的にはキツイです(ニュアンスの理解ができない)
問題文がわからない上に,入出力もわからないので,割りと死ねてます.これは良くない.

ちょっと過去問を見直しながら,英語の勉強でもします….

# Cyclemin Easy, 250
class Cyclemin:
    def bestmod(self, s, k):
        best = s
        for i in range(len(s)):
            temp = s[i:] + s[:i]
            for j in range(k):
                while temp[j] == "a":
        			j += 1
        			if j > len(s):
        				break
                temp = temp[:j] + "a" + temp[j+1:]
            if best > temp:
                best = temp
        return best

どうでも良いが,Pythonとだけ書いてあったので若干不安だったけれども,普通にPython3書けて良かったです(僕はPyhton2かけないので)