Skip to content

Commit ef60809

Browse files
committed
Add day-02
1 parent 04db340 commit ef60809

1 file changed

Lines changed: 50 additions & 2 deletions

File tree

2025/day-02/main.py

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,59 @@
22

33

44
def part1():
5-
pass
5+
lines = """
6+
11-22,95-115,998-1012,1188511880-1188511890,222220-222224,
7+
1698522-1698528,446443-446449,38593856-38593862,565653-565659,
8+
824824821-824824827,2121212118-2121212124
9+
"""
10+
lines =open('../inputs/day-02.txt', 'r').read().strip()
11+
# lines
12+
invalid_ids = []
13+
ranges = [r.strip() for r in lines.split(",") if r.strip()]
14+
for r in ranges:
15+
start_str, end_str = r.split("-")
16+
start = int(start_str)
17+
end = int(end_str)
18+
for i in range(start, end + 1):
19+
s = str(i)
20+
if len(s) % 2 == 0:
21+
half = len(s) // 2
22+
if s[:half] == s[half:]:
23+
invalid_ids.append(i)
624

25+
# print(f"Part 1: {len(invalid_ids)} invalid IDs")
26+
# print(f"Invalid IDs: {invalid_ids}")
27+
print(sum(invalid_ids))
28+
29+
def is_repeated_substring(substr: str) -> bool:
30+
n = len(substr)
31+
for l in range(1, n // 2 + 1):
32+
if n % l == 0 and substr == substr[:l] * (n // l):
33+
return True
34+
return False
735

836
def part2():
9-
pass
37+
lines = """
38+
11-22,95-115,998-1012,1188511880-1188511890,222220-222224,
39+
1698522-1698528,446443-446449,38593856-38593862,565653-565659,
40+
824824821-824824827,2121212118-2121212124
41+
"""
42+
lines = open('../inputs/day-02.txt', 'r').read().strip() # lines
43+
invalid_any = []
44+
ranges = [r.strip() for r in lines.split(",") if r.strip()]
45+
for r in ranges:
46+
start_str, end_str = r.split("-")
47+
start = int(start_str)
48+
end = int(end_str)
49+
for i in range(start, end + 1):
50+
substring = str(i)
51+
if is_repeated_substring(substring):
52+
invalid_any.append(i)
53+
54+
# print(f"Part 2: {len(invalid_any)} invalid IDs")
55+
# print(f"Invalid IDs: {invalid_any}")
56+
print(sum(invalid_any))
57+
1058

1159

1260
if __name__ == "__main__":

0 commit comments

Comments
 (0)