回答編集履歴
2
コード修正
answer
CHANGED
@@ -18,10 +18,13 @@
|
|
18
18
|
src = [0.1,0.5,0.03,-0.19,-0.05,0.1,0.5,-0.2]
|
19
19
|
|
20
20
|
src_t = ''.join(map(lambda x: 'ab'[x < 0], src))
|
21
|
-
|
21
|
+
groups = re.findall('a+|b+', src_t)
|
22
22
|
|
23
|
-
seq_minus = count[-1]
|
24
|
-
|
23
|
+
def seq_len_max(groups, s):
|
24
|
+
return len(max(filter(lambda x: s in x, groups), key=len))
|
25
25
|
|
26
|
+
seq_plus = seq_len_max(groups, 'a')
|
27
|
+
seq_minus = seq_len_max(groups, 'b')
|
28
|
+
|
26
29
|
print(seq_plus, seq_minus)
|
27
30
|
```
|
1
文章修正
answer
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
この整形した文字列に対して、正規表現モジュールreのパターンマッチング(a+|b+)で連続した文字列を全て取り出します。
|
12
12
|
これをsortすることで連続したaの文字列のグループ、連続したbの文字列のグループに分割することができます(実際には1つのリスト)。
|
13
|
-
後は、リストのラストが負の数の最大連続数、それを除いた残りのリストの最大
|
13
|
+
後は、リストのラストが負の数の最大連続数、それを除いた残りのリストの最大値が正の数の最大連続数になります。
|
14
14
|
|
15
15
|
``` python
|
16
16
|
import re
|