47 lines
1.0 KiB
Python
47 lines
1.0 KiB
Python
from lib import LETTERS_LOWER
|
|
|
|
|
|
def part_1(data):
|
|
data = data.strip()
|
|
i = 0
|
|
while i < (len(data) - 1):
|
|
a, b = data[i], data[i + 1]
|
|
if (a.upper() == b.upper()) and (a != b):
|
|
data = data[:i] + data[i + 2 :]
|
|
i = max(0, i - 1)
|
|
else:
|
|
i += 1
|
|
print(len(data))
|
|
|
|
|
|
def part_2(data):
|
|
data_orig = data.strip()
|
|
min_len = float("inf")
|
|
for c in LETTERS_LOWER:
|
|
data = str(data_orig)
|
|
data = data.replace(c, "")
|
|
data = data.replace(c.upper(), "")
|
|
i = 0
|
|
while i < (len(data) - 1):
|
|
a, b = data[i], data[i + 1]
|
|
if (a.upper() == b.upper()) and (a != b):
|
|
data = data[:i] + data[i + 2 :]
|
|
i = max(0, i - 1)
|
|
else:
|
|
i += 1
|
|
|
|
min_len = min(min_len, len(data))
|
|
print(min_len)
|
|
|
|
|
|
def main():
|
|
input_file = __file__.replace(".py", ".txt")
|
|
with open(input_file) as f:
|
|
data = f.read()
|
|
part_1(data)
|
|
part_2(data)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|