Skip to content

Instantly share code, notes, and snippets.

@wakemaster39
Created December 5, 2018 19:17
Show Gist options
  • Save wakemaster39/ffe7e1af0cabfb94809be204ebba2c9f to your computer and use it in GitHub Desktop.
Save wakemaster39/ffe7e1af0cabfb94809be204ebba2c9f to your computer and use it in GitHub Desktop.
import os
import json
import functools
from aocd import get_data
DAY=5
dir = os.path.dirname(__file__)
directory = os.path.join(dir, f"day{DAY}")
if not os.path.exists(directory):
os.makedirs(directory)
if not os.path.exists(os.path.join(directory, "data.txt")):
with open(os.path.join(dir, "../../" "config", "session")) as f:
session = f.read()[:-1]
data = get_data(session=session, day=DAY, year=2018)
with open(os.path.join(directory, "data.txt"), "w+") as f:
f.write(data)
else:
with open(os.path.join(directory, "data.txt")) as f:
data = f.read()
import string
import re
r = functools.reduce(lambda x,y: f'{x}|{y}' ,map(lambda x: f'{x}{x.upper()}|{x.upper()}{x}', string.ascii_lowercase))
regex = f"({r})"
length = []
for x in string.ascii_lowercase:
cdata = data
cdata = re.sub(f"{x}|{x.upper()}", "", cdata)
while True:
if re.search(r, cdata):
print(len(cdata))
cdata = re.sub(regex,"", cdata)
else:
break
length.append(len(cdata))
print(min(length))
@zero-code-hero
Copy link

mport sys
from typing import List, Dict, Generator
import os
import string
from collections import Counter
import time
import re

DIR_PATH = os.path.dirname(os.path.realpath(__file__))


with open(f"{DIR_PATH}/../resources/2018_day_5/input") as file:
    input_data: str = file.read()
input_data: List[str] = [x for x in input_data.strip()]

def reverse_case(char: str):
    if char.islower():
        return char.upper()
    else:
        return char.lower()

data = input_data
index = 0
while True:
    sl = len(data)

    if index == len(data) - 1:
        break

    try:
        if data[index] == reverse_case(data[index + 1]):
            del data[index]
            del data[index]
            index -= 1
            continue
    except IndexError:
        break

    index += 1
# 10978
print(len(data))


start_time = time.time()
tl = []
for a in string.ascii_lowercase:
    data = "".join(input_data).replace(a, "")
    data = data.replace(a.upper(), "")
    data = list(data)
    index = 0
    while True:
        sl = len(data)


        try:
            if data[index] == reverse_case(data[index + 1]):
                del data[index]
                del data[index]
                index -= 1
                continue
        except IndexError:
            break

        index += 1
        #print("".join(input_data))
    tl.append(len(data))
print(min(tl))
# 0.0009732246398925781
print(time.time() - start_time)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment