diff --git a/src/brackets/index.js b/src/brackets/index.js index 96b6766..1cd070f 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..4a34352 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..72b6b1d 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;