Привет!
Это мой первый пост на Dev, и мой первый год пытается завершить появление кода.
РЕДАКТИРОВАТЬ
Упс! Это из 2015 Действительно Я начал Slack Channel на работе на AOC и использовал 2015 день 1 в качестве прогрева для группы. Название отредактировано, чтобы отразить это.
День 1 Часть 1
Я решил использовать Python 3, так как язык, с которым мне наиболее удобно решать небольшие проблемы, подобные этому. Я также пишу в Java на работе, поэтому, используя Python вот приятный способ оставаться острым и продолжать строить свои навыки на этом языке.
Day1Part1_v1.py
import re
input_string = 'input.txt'
with open(input_string, 'r') as input_file:
for line in input_file:
open_parens = re.findall(r'\(', line)
close_parens = re.findall(r'\)',line)
open_parens_count = len(open_parens)
close_parens_count = len(close_parens)
floor = open_parens_count - close_parens_count
print("Santa, go to floor " + str(floor))
input_file.close()
Я хотел использовать Запросы Модуль, чтобы получить текст ввода вместо того, чтобы сохранить до .текст , Но тогда мне пришлось бы провести время в курсе способа войти в систему и установить сеанс в моем скрипте.
Использование Regex, вероятно, неожиданно, поскольку разыскиваются строковые шаблоны, являются лишь одиночными символами, но я так используется для использования Regex с помощью сценариев Python Parsing, что это то, что я тянутся из-за привычки.
Поэтому я решил реформировать после того, как увидел въезд коллеги и был пощечен количеством в результате в результате скобки в моем скрипте!
Day1Part1_v2.py
input_string = 'input.txt'
with open(input_string, 'r') as input_file:
for line in input_file:
print("Floor #: " + str(len(line.split('('))-len((line.split(')')))))
1 день Часть 2
Я решил попробовать рефакторовать Третий Время, когда это было доведено до моего внимания, что была часть вторая! К счастью, моя третья версия оказалась, что поедет в направлении, который подходит мне потребности в этой проблеме, итерацией по каждому персонажу, поэтому я просто изменил его, чтобы затем решить для второй проблемы.
Я не помню, как или почему я пришел, чтобы использовать Оператор модуль, кроме я, вероятно, искал что-то, чтобы сделать строковое сравнение таким образом, что у Java есть .equals ?
Day1Part2_v1.py
import operator
input_string = 'input.txt'
floor = 0
char_count = 0
in_basement = False
with open(input_string, 'r') as input_file:
for line in input_file:
for char in line:
if operator.eq('(',char):
floor += 1
elif operator.eq(')',char):
floor -= 1
else:
print('invalid input')
char_count += 1
if(floor < 0):
if not in_basement:
in_basement = True
print("Entered basement at char: " + str(char_count))
print("Floor: " + str(floor))
input_file.close()
Мне было очень весело с этими головоломками! Я буду делать запись на 2 день, который я закончил, и (надеюсь) каждый день после их завершения.
Я, конечно, приветствую любую и все отзывы, так как моя основная цель в участии и обменах – быть лучшим программистом.
Спасибо за прочтение!
Оригинал: “https://dev.to/jonchiou/advent-of-code-2018—my-day-1-solutions-4ajb”