Day4
简介
第一部分
大意就是找出下面配对序列中 范围有完全包含另一个序列的个数
- 2-4,6-8
- 2-3,4-5
- 5-7,7-9
- 2-8,3-7
- 6-6,4-6
- 2-6,4-8
上面给出的配对中 只有2-8, 3-7
和6-6,4-6
是完全包含的 因此存在 2 种
第二部分
寻找有重叠部分(overlap at all
)的配对
- 5-7,7-9 :重叠部分为 7.
- 2-8,3-7 :重叠部分为 3 到 7.
- 6-6,4-6 :重叠部分为 6.
- 2-6,4-8 :重叠部分为 是 4, 5, and 6
因此包含此种配对一共有四种
解法
Part I
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| def solution_part_1(data):
count = 0
for i in data.split("\n"):
first, second = i.split(",")
first_list = list(
map(str, range(int(first.split("-")[0]), int(first.split("-")[1]) + 1))
)
second_list = list(
map(str, range(int(second.split("-")[0]), int(second.split("-")[1]) + 1))
)
interset_set = set(first_list).intersection(set(second_list))
if interset_set == set(first_list) or interset_set == set(second_list):
count += 1
return count
|
Part II
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
def solution_part_2(data):
count = 0
for i in data.split("\n"):
first, second = i.split(",")
first_list = list(
map(str, range(int(first.split("-")[0]), int(first.split("-")[1]) + 1))
)
second_list = list(
map(str, range(int(second.split("-")[0]), int(second.split("-")[1]) + 1))
)
interset_set = set(first_list).intersection(set(second_list))
if len(interset_set) > 0:
count += 1
return count
|
总结