diff --git a/src/brackets/index.js b/src/brackets/index.js index 96b6766..729f90e 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) { + let arrBracket = []; + + for (let i in str) { + if (str[i] == '(' || str[i] == '[' || str[i] == '{') { + arrBracket.push(str[i]); + } else { + let braInd = arrBracket.length - 1; + + if (str[i] == ')' && arrBracket[braInd] == '(') { + arrBracket.pop(); + } else if (str[i] == ']' && arrBracket[braInd] == '[') { + arrBracket.pop(); + } else if (str[i] == '}' && arrBracket[braInd] == '{') { + arrBracket.pop(); + } else { + return 'invalid'; + } + } + } + + return arrBracket.length === 0 ? 'valid' : 'invalid'; + } module.exports = isValid; diff --git a/src/brackets/test.js b/src/brackets/test.js index 3e7e660..47c05f0 100644 --- a/src/brackets/test.js +++ b/src/brackets/test.js @@ -1,4 +1,4 @@ -const isValid = require("./"); +const isValid = require("."); describe("Brackets Suite", () => { test("Single Character - valid inputs", () => { diff --git a/src/roman-numerals/index.js b/src/roman-numerals/index.js index 38afb19..a164a82 100644 --- a/src/roman-numerals/index.js +++ b/src/roman-numerals/index.js @@ -4,6 +4,23 @@ * @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 romanNum = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}; + + let result = 0; + + for(let i = 0; i < roman.length; i++){ + let curValue = romanNum[roman[i]]; + let nxtValue = romanNum[roman[i + 1]]; + + if (nxtValue && nxtValue > curValue){ + result += nxtValue - curValue; + i++; + } else { + result += curValue; + } + } + return result; + } module.exports = romanToDecimal; diff --git a/src/transpose/index.js b/src/transpose/index.js index adec201..789f90d 100644 --- a/src/transpose/index.js +++ b/src/transpose/index.js @@ -4,6 +4,15 @@ * @param {number[]} array The array to transpose * @returns {number[]} The transposed array */ -function transpose(array) {} - +function transpose(array) { + let transposedArr = []; + for (let i = 0; i < array[0].length; i++) { + let arrChild = []; + for (let j = 0; j < array.length; j++) { + arrChild.push(array[j][i]); + } + transposedArr.push(arrChild); + } + return(transposedArr); +} module.exports = transpose;