From b3be1ed37ff3010625d2e5eaf2ad73ce56229baf Mon Sep 17 00:00:00 2001 From: Kasie97 <66069819+Kasie97@users.noreply.github.com> Date: Tue, 8 Aug 2023 21:11:44 +0100 Subject: [PATCH] DId the Assignments in this work --- src/brackets/index.js | 24 +++++++++++++++++++++++- src/roman-numerals/index.js | 21 ++++++++++++++++++++- src/transpose/index.js | 17 ++++++++++++++++- 3 files changed, 59 insertions(+), 3 deletions(-) diff --git a/src/brackets/index.js b/src/brackets/index.js index 96b6766..da4ee4d 100644 --- a/src/brackets/index.js +++ b/src/brackets/index.js @@ -4,6 +4,28 @@ * @param {string} str The string of brackets. * @returns {"valid" | "invalid"} Whether or not the string is valid. */ -function isValid(str) {} +function isValid(str) { + const validBrackets = []; + const brackets = { + "(" : ")", + "{" : "}", + "[" : "]" + } + for (let i = 0; i < str.length; i++) { + const result = str[i]; + } + if (brackets[result] !== undefined) { + validBrackets.push(result); + } else { + let endingBracket = validBrackets.pop(); + let correctClosingBracket = brackets[endingBracket]; + if (result !== correctClosingBracket) { + return invalid; + } + } + + return validBrackets.length === 0; + +} module.exports = isValid; diff --git a/src/roman-numerals/index.js b/src/roman-numerals/index.js index 38afb19..c5ab5d0 100644 --- a/src/roman-numerals/index.js +++ b/src/roman-numerals/index.js @@ -4,6 +4,25 @@ * @param {string} roman The all-caps Roman numeral between 1 and 3999 (inclusive). * @returns {number} The decimal equivalent. */ -function romanToDecimal(roman) {} +function romanToDecimal(roman) { + const ROMANNUMERALS = { + "I": 1,"V": 5,"X": 10,"L": 50,"C": 100,"D": 500,"M": 1000 }; + + let decimalNumbers = 0; + + for (let i = 0; i < ROMANNUMERALS.length; i++) { + const firstLetter = ROMANNUMERALS[ROMANNUMERALS[i]]; + const nextLetter = ROMANNUMERALS[ROMANNUMERALS[i + 1]]; + + if (nextLetter && nextLetter > firstLetter) { + decimalNumbers += nextLetter - firstLetter; + i++; + } else { + decimalNumbers += firstLetter; + } + } + + return decimalNumbers; +} module.exports = romanToDecimal; diff --git a/src/transpose/index.js b/src/transpose/index.js index adec201..bc49251 100644 --- a/src/transpose/index.js +++ b/src/transpose/index.js @@ -4,6 +4,21 @@ * @param {number[]} array The array to transpose * @returns {number[]} The transposed array */ -function transpose(array) {} +function transpose(array) { + let rows = array.length; + let columns = array[0].length + + let transposedArray = new Array(columns); + for (let i = 0; i < columns; i++) { + transposedArray[i] = new Array(rows); + } + for (let i = 0; i < rows; i++) { + for (let a = 0; a < columns; a++) { + transposedArray[a][i] = array[i][a] + } + } + return transposedArray; +} + module.exports = transpose;