python; checkio日記

checkioを中心にpythonプログラミングの記録

Home 問題 Long Repeat

'aaabbbccssafa' -> 3
アルファベットがもっとも長く連続する長さを返す関数を作る。
直線的にやってみます。

def long_repeat(line):
    if line=='':
        return(0)
    else:       
        count=1
        count_chr=[1]
        for i in range(1,len(line)):
            if line[i-1]==line[i]:
                count +=1
            else:
                count = 1
            count_chr.append(count)
        return max(count_chr)

assertのチェックには問題ないが、最初の2行を入れないとステージはクリアできないです。書いといてほしい。。。。 連続する4ステージの一つ目らしく、brute forceより効率的にしよう!みたいなコメントが入っているので、たぶんもっと工夫したコードをしなければならないのでしょうが、とりあえず今回はこれで。