Reverse Inside Parentheses (Inside Parentheses)
This commit is contained in:
18
reverse-inside-parentheses-inside-parentheses/index.js
Normal file
18
reverse-inside-parentheses-inside-parentheses/index.js
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
// https://www.codewars.com/kata/reverse-inside-parentheses-inside-parentheses/javascript
|
||||||
|
|
||||||
|
const reverseInParens = str => {
|
||||||
|
const rb = /[\[\]]/g;
|
||||||
|
const rm = /\([^\(\)]*\)/;
|
||||||
|
const mi = {'[':']', ']':'['};
|
||||||
|
const mc = {'[':'(', ']':')'};
|
||||||
|
let last;
|
||||||
|
while (last !== str) {
|
||||||
|
last = str;
|
||||||
|
str = str.replace(rm, s => {
|
||||||
|
s = s.substr(1, s.length-2).replace(rb, s => mi[s]);
|
||||||
|
return [']',...s,'['].reverse().join``;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
str = str.replace(rb, s => mc[s]);
|
||||||
|
return str;
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user