説明のコメントを入れてみました。
python
1count = 1 # 最低一回は連続する
2count_chr = [1] # 連続した回数をいちいちリストに突っ込んでおいて、あとでmax取れば良いでしょ(1を初期値として入れているのはそんなに本質的な意味はないはずです。このコードなら)
3for i in range(1,len(line)): # 1文字目から最後まで見ていく
4 if line[i-1] == line [i]: # i-1文字とi文字目が同じなら連続のカウントを足す
5 count += 1
6 else:
7 count = 1 # ちがってたらリセット
8 count_chr.append(count) # 同じ文字だろうが違う文字だろうが、とりあえずリストに突っ込んでおく
9return max(count_chr) # 最大値を取ろう!
あとは実際に見てみるとわかりやすいです。
python
1def long_repeat(line): #文字列の中の最大連続数表示の関数
2 if line == '':
3 return(0)
4 else:
5 count = 1
6 count_chr = [1]
7 for i in range(1,len(line)):
8 if line[i-1] == line [i]:
9 count += 1
10 else:
11 count = 1
12 count_chr.append(count)
13 print(count_chr)
14 return max(count_chr)
15
16print(long_repeat("aabbbbbc"))
17print(long_repeat("ddddddddddddde"))
18
19""" =>
20[1, 2, 1, 2, 3, 4, 5, 1]
215
22[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1]
2313
24"""
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/04 13:53
2018/06/04 13:55