Skip to content

Instantly share code, notes, and snippets.

@broguinn
Created August 19, 2022 16:49
Show Gist options
  • Save broguinn/44ae7a7b287da86043a9599f1fbebf67 to your computer and use it in GitHub Desktop.
Save broguinn/44ae7a7b287da86043a9599f1fbebf67 to your computer and use it in GitHub Desktop.
ts_issues
// We know that b is the closing char
// Change this if ever the order isn't known
const formsPair = (a: string, b: string): boolean => {
const forms = (a === "{" && b === "}") ||
(a === "(" && b === ")") ||
(a === "[" && b === "]");
console.log(["forms pair?", forms])
return forms;
};
function isValid(s: string): boolean {
const stack: string[] = [];
const chars = s.split("");
let valid = true;
chars.forEach(char => {
if (char === "{" ||
char === "(" ||
char === "[") {
stack.push(char);
} else {
let formsPairs = formsPair(stack[stack.length - 1], char);
console.log(["formspair 2", formsPairs]);
// change this if we ever expect other characters
if (formsPairs) {
console.log("popping");
console.log(stack);
let la = stack.pop();
console.log(la)
console.log(stack);
} else {
console.log("invalid");
valid = false;
}
}
// console.log(char);
// console.log(stack);
});
if (stack.length) {
valid = false;
}
return valid;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment