[CLEANUP] Made the code a little bit cleaner

This commit is contained in:
2021-12-10 20:04:38 +01:00
parent 168e55e5ef
commit 3ad67df338

View File

@@ -1,12 +1,9 @@
import Day from "./day";
import Utils from "./utils";
const MISSING_CHARACTER_SCORES: {[key: string]: number} = {
")": 1,
"]": 2,
"}": 3,
">": 4,
}
const BRACKETS: {[key: string]: string} = { "(": ")", "[": "]", "{": "}", "<": ">" };
const CORRUPT_CHARACTER_SCORES: {[key: string]: number} = { ")": 3, "]": 57, "}": 1197, ">": 25137 };
const MISSING_CHARACTER_SCORES: {[key: string]: number} = { ")": 1, "]": 2, "}": 3, ">": 4 };
class Day10 implements Day {
@@ -41,13 +38,7 @@ class Day10 implements Day {
}
getCorruptCharacterScore(char: string): number {
switch (char) {
case ")": return 3;
case "]": return 57;
case "}": return 1197;
case ">": return 25137;
default: throw Error(`Can't find points for character '${char}'`);
}
return CORRUPT_CHARACTER_SCORES[char];
}
checkSyntax(line: string): { error: "corrupt", expected: string, got: string } | { error: "incomplete", missing: string } | { error: "none" } {
@@ -55,12 +46,9 @@ class Day10 implements Day {
const stack = [];
for (const char of line) {
switch (char) {
case "(": stack.push(")"); break;
case "[": stack.push("]"); break;
case "{": stack.push("}"); break;
case "<": stack.push(">"); break;
default: {
if (char in BRACKETS) {
stack.push(BRACKETS[char]);
} else {
const expected = stack[stack.length - 1];
if (expected === char) {
stack.pop();
@@ -69,7 +57,6 @@ class Day10 implements Day {
}
}
}
}
if (stack.length === 0) {
return { error: "none" }
} else {