diff --git a/src/brackets/index.js b/src/brackets/index.js index 96b6766..8f7bae1 100644 --- a/src/brackets/index.js +++ b/src/brackets/index.js @@ -4,6 +4,9 @@ * @param {string} str The string of brackets. * @returns {"valid" | "invalid"} Whether or not the string is valid. */ -function isValid(str) {} +function isValid(str) { + while(/\(\)|\[\]|\{\}/g.test(braces)){braces = braces.replace(/\(\)|\[\]|\{\}/g,"")} + return !braces.length; +} module.exports = isValid; diff --git a/src/roman-numerals/index.js b/src/roman-numerals/index.js index 38afb19..b524bd0 100644 --- a/src/roman-numerals/index.js +++ b/src/roman-numerals/index.js @@ -4,6 +4,10 @@ * @param {string} roman The all-caps Roman numeral between 1 and 3999 (inclusive). * @returns {number} The decimal equivalent. */ -function romanToDecimal(roman) {} +function romanToDecimal(roman) { + var conversion = {M: 1000, CM: 900, D: 500, CD: 400, C: 100, XC: 90, L: 50, XL: 40, X: 10, IX: 9, V: 5, IV: 4, I: 1}; + + return roman.match(/CM|CD|XC|XL|IX|IV|\w/g).reduce((accum, roman) => accum + conversion[roman], 0); +} module.exports = romanToDecimal; diff --git a/src/transpose/index.js b/src/transpose/index.js index adec201..7351210 100644 --- a/src/transpose/index.js +++ b/src/transpose/index.js @@ -4,6 +4,10 @@ * @param {number[]} array The array to transpose * @returns {number[]} The transposed array */ -function transpose(array) {} +function transpose(array) { + return array[0].map((_, i) => array.map(row => row[i])); +} +console.log(transpose([[9, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 7], [1, 3, 1, 5]])); + module.exports = transpose;