From ca9e753968ce6ad3fef35980c0125fd759848c7b Mon Sep 17 00:00:00 2001 From: Pascal Lais Date: Sat, 18 Dec 2021 20:55:57 +0100 Subject: [PATCH] Tidy up explode function --- day-18/day-18.py | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/day-18/day-18.py b/day-18/day-18.py index e904e90..351e02e 100644 --- a/day-18/day-18.py +++ b/day-18/day-18.py @@ -74,28 +74,26 @@ def explode(n, lvl=0): return True, 0, left, right lvl += 1 res, left, l, r = explode(left, lvl) - if not res: - res, right, l, r = explode(right, lvl) - if not res: - return False, n, None, None + if res: + if r: + if isinstance(right, int): + right = right + r + r = None + else: + res, right = explode_to_right(right, r) + r = None if res else r + return True, (left, right), l, r + res, right, l, r = explode(right, lvl) + if res: if l: if isinstance(left, int): left = left + l l = None else: res, left = explode_to_left(left, l) - if res: - l = None + l = None if res else l return True, (left, right), l, r - if r: - if isinstance(right, int): - right = right + r - r = None - else: - res, right = explode_to_right(right, r) - if res: - r = None - return True, (left, right), l, r + return False, n, None, None def split(n):