質問するログイン新規登録

回答編集履歴

3

コードのミス

2021/09/01 11:53

投稿

algobeginner
algobeginner

スコア16

answer CHANGED
@@ -16,6 +16,7 @@
16
16
  integrate_set.add(j)
17
17
  #setで被った数字を取り除きそれをintegrate_lisの中に入れる
18
18
  integrate_lis = list(integrate_set)
19
+ integrate_lis.sort()
19
20
  #前後の数字を比較して始点のリストと終点のリストに加える
20
21
  update_start_lis.append(integrate_lis[0])
21
22
  for k in range(1, len(integrate_lis) - 1):
@@ -27,4 +28,7 @@
27
28
  print(update_start_lis, update_end_lis)
28
29
  ```
29
30
  実際に出力されるデータ
30
- [1, 6] [5, 8]
31
+ [1, 6] [5, 8]
32
+ ---
33
+ 追記
34
+ integrate_lisをsortするコードを追加して小さい順に並んでない時に正常に動かない不具合を修正しました。

2

回答場所は正しいらしい

2021/09/01 11:53

投稿

algobeginner
algobeginner

スコア16

answer CHANGED
@@ -1,1 +1,30 @@
1
+ アドバイスを元にプログラムを組んでみました。
1
- 場所間違え修復案を書いてしまったで削除します
2
+ 領域内の整数set中に入れて重複を排除した後
3
+ その数字の羅列を元に始点と終点のリストを作ってみました
4
+
5
+ ```python
6
+ start_lis = [1, 3, 6]
7
+ end_lis = [4, 5, 8]
8
+ integrate_set = set()
9
+ integrate_lis = []
10
+ update_start_lis = []
11
+ update_end_lis = []
12
+
13
+ #領域の中の整数を全てintegrate_setの中に入れる
14
+ for i in range(len(start_lis)):
15
+ for j in range(start_lis[i], end_lis[i]):
16
+ integrate_set.add(j)
17
+ #setで被った数字を取り除きそれをintegrate_lisの中に入れる
18
+ integrate_lis = list(integrate_set)
19
+ #前後の数字を比較して始点のリストと終点のリストに加える
20
+ update_start_lis.append(integrate_lis[0])
21
+ for k in range(1, len(integrate_lis) - 1):
22
+ if integrate_lis[k + 1] - integrate_lis[k] >= 2:
23
+ update_end_lis.append(integrate_lis[k] + 1 )
24
+ if integrate_lis[k] - integrate_lis[k - 1] >= 2:
25
+ update_start_lis.append(integrate_lis[k])
26
+ update_end_lis.append(integrate_lis[-1] + 1)
27
+ print(update_start_lis, update_end_lis)
28
+ ```
29
+ 実際に出力されるデータ
30
+ [1, 6] [5, 8]

1

場所を間違えて修復案を書いてしまったので削除します

2021/09/01 09:30

投稿

algobeginner
algobeginner

スコア16

answer CHANGED
@@ -1,30 +1,1 @@
1
- アドバイスを元にプログラムを組んでみました。
2
- 領域内の整数setの中に入れて重複排除した
1
+ 場所間違え修復案書いてまっので削除します
3
- その数字の羅列を元に始点と終点のリストを作ってみました
4
-
5
- ```python
6
- start_lis = [1, 3, 6]
7
- end_lis = [4, 5, 8]
8
- integrate_set = set()
9
- integrate_lis = []
10
- update_start_lis = []
11
- update_end_lis = []
12
-
13
- #領域の中の整数を全てintegrate_setの中に入れる
14
- for i in range(len(start_lis)):
15
- for j in range(start_lis[i], end_lis[i]):
16
- integrate_set.add(j)
17
- #setで被った数字を取り除きそれをintegrate_lisの中に入れる
18
- integrate_lis = list(integrate_set)
19
- #前後の数字を比較して始点のリストと終点のリストに加える
20
- update_start_lis.append(integrate_lis[0])
21
- for k in range(1, len(integrate_lis) - 1):
22
- if integrate_lis[k + 1] - integrate_lis[k] >= 2:
23
- update_end_lis.append(integrate_lis[k] + 1 )
24
- if integrate_lis[k] - integrate_lis[k - 1] >= 2:
25
- update_start_lis.append(integrate_lis[k])
26
- update_end_lis.append(integrate_lis[-1] + 1)
27
- print(update_start_lis, update_end_lis)
28
- ```
29
- 実際に出力されるデータ
30
- [1, 6] [5, 8]