回答編集履歴

2

コード修正

2018/04/08 02:14

投稿

arch_
arch_

スコア158

test CHANGED
@@ -38,13 +38,19 @@
38
38
 
39
39
  src_t = ''.join(map(lambda x: 'ab'[x < 0], src))
40
40
 
41
- count = list(map(len, sorted(re.findall('a+|b+', src_t))))
41
+ groups = re.findall('a+|b+', src_t)
42
42
 
43
43
 
44
44
 
45
- seq_minus = count[-1]
45
+ def seq_len_max(groups, s):
46
46
 
47
+ return len(max(filter(lambda x: s in x, groups), key=len))
48
+
49
+
50
+
47
- seq_plus = max(count[:-1])
51
+ seq_plus = seq_len_max(groups, 'a')
52
+
53
+ seq_minus = seq_len_max(groups, 'b')
48
54
 
49
55
 
50
56
 

1

文章修正

2018/04/08 02:14

投稿

arch_
arch_

スコア158

test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  これをsortすることで連続したaの文字列のグループ、連続したbの文字列のグループに分割することができます(実際には1つのリスト)。
24
24
 
25
- 後は、リストのラストが負の数の最大連続数、それを除いた残りのリストの最大連続数が正の数になります。
25
+ 後は、リストのラストが負の数の最大連続数、それを除いた残りのリストの最大が正の数の最大連続数になります。
26
26
 
27
27
 
28
28