回答編集履歴
3
コードのミス
test
CHANGED
@@ -34,6 +34,8 @@
|
|
34
34
|
|
35
35
|
integrate_lis = list(integrate_set)
|
36
36
|
|
37
|
+
integrate_lis.sort()
|
38
|
+
|
37
39
|
#前後の数字を比較して始点のリストと終点のリストに加える
|
38
40
|
|
39
41
|
update_start_lis.append(integrate_lis[0])
|
@@ -57,3 +59,9 @@
|
|
57
59
|
実際に出力されるデータ
|
58
60
|
|
59
61
|
[1, 6] [5, 8]
|
62
|
+
|
63
|
+
---
|
64
|
+
|
65
|
+
追記
|
66
|
+
|
67
|
+
integrate_lisをsortするコードを追加して小さい順に並んでない時に正常に動かない不具合を修正しました。
|
2
回答場所は正しいらしい
test
CHANGED
@@ -1 +1,59 @@
|
|
1
|
+
アドバイスを元にプログラムを組んでみました。
|
2
|
+
|
1
|
-
|
3
|
+
領域内の整数を全てsetの中に入れて重複を排除した後
|
4
|
+
|
5
|
+
その数字の羅列を元に始点と終点のリストを作ってみました
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
```python
|
10
|
+
|
11
|
+
start_lis = [1, 3, 6]
|
12
|
+
|
13
|
+
end_lis = [4, 5, 8]
|
14
|
+
|
15
|
+
integrate_set = set()
|
16
|
+
|
17
|
+
integrate_lis = []
|
18
|
+
|
19
|
+
update_start_lis = []
|
20
|
+
|
21
|
+
update_end_lis = []
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
#領域の中の整数を全てintegrate_setの中に入れる
|
26
|
+
|
27
|
+
for i in range(len(start_lis)):
|
28
|
+
|
29
|
+
for j in range(start_lis[i], end_lis[i]):
|
30
|
+
|
31
|
+
integrate_set.add(j)
|
32
|
+
|
33
|
+
#setで被った数字を取り除きそれをintegrate_lisの中に入れる
|
34
|
+
|
35
|
+
integrate_lis = list(integrate_set)
|
36
|
+
|
37
|
+
#前後の数字を比較して始点のリストと終点のリストに加える
|
38
|
+
|
39
|
+
update_start_lis.append(integrate_lis[0])
|
40
|
+
|
41
|
+
for k in range(1, len(integrate_lis) - 1):
|
42
|
+
|
43
|
+
if integrate_lis[k + 1] - integrate_lis[k] >= 2:
|
44
|
+
|
45
|
+
update_end_lis.append(integrate_lis[k] + 1 )
|
46
|
+
|
47
|
+
if integrate_lis[k] - integrate_lis[k - 1] >= 2:
|
48
|
+
|
49
|
+
update_start_lis.append(integrate_lis[k])
|
50
|
+
|
51
|
+
update_end_lis.append(integrate_lis[-1] + 1)
|
52
|
+
|
53
|
+
print(update_start_lis, update_end_lis)
|
54
|
+
|
55
|
+
```
|
56
|
+
|
57
|
+
実際に出力されるデータ
|
58
|
+
|
59
|
+
[1, 6] [5, 8]
|
1
場所を間違えて修復案を書いてしまったので削除します
test
CHANGED
@@ -1,59 +1 @@
|
|
1
|
-
アドバイスを元にプログラムを組んでみました。
|
2
|
-
|
3
|
-
|
1
|
+
場所を間違えて修復案を書いてしまったので削除します
|
4
|
-
|
5
|
-
その数字の羅列を元に始点と終点のリストを作ってみました
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
```python
|
10
|
-
|
11
|
-
start_lis = [1, 3, 6]
|
12
|
-
|
13
|
-
end_lis = [4, 5, 8]
|
14
|
-
|
15
|
-
integrate_set = set()
|
16
|
-
|
17
|
-
integrate_lis = []
|
18
|
-
|
19
|
-
update_start_lis = []
|
20
|
-
|
21
|
-
update_end_lis = []
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
#領域の中の整数を全てintegrate_setの中に入れる
|
26
|
-
|
27
|
-
for i in range(len(start_lis)):
|
28
|
-
|
29
|
-
for j in range(start_lis[i], end_lis[i]):
|
30
|
-
|
31
|
-
integrate_set.add(j)
|
32
|
-
|
33
|
-
#setで被った数字を取り除きそれをintegrate_lisの中に入れる
|
34
|
-
|
35
|
-
integrate_lis = list(integrate_set)
|
36
|
-
|
37
|
-
#前後の数字を比較して始点のリストと終点のリストに加える
|
38
|
-
|
39
|
-
update_start_lis.append(integrate_lis[0])
|
40
|
-
|
41
|
-
for k in range(1, len(integrate_lis) - 1):
|
42
|
-
|
43
|
-
if integrate_lis[k + 1] - integrate_lis[k] >= 2:
|
44
|
-
|
45
|
-
update_end_lis.append(integrate_lis[k] + 1 )
|
46
|
-
|
47
|
-
if integrate_lis[k] - integrate_lis[k - 1] >= 2:
|
48
|
-
|
49
|
-
update_start_lis.append(integrate_lis[k])
|
50
|
-
|
51
|
-
update_end_lis.append(integrate_lis[-1] + 1)
|
52
|
-
|
53
|
-
print(update_start_lis, update_end_lis)
|
54
|
-
|
55
|
-
```
|
56
|
-
|
57
|
-
実際に出力されるデータ
|
58
|
-
|
59
|
-
[1, 6] [5, 8]
|