diff --git a/Reverse_In_Parenthesis/Reverse_in_parenthesis.java b/Reverse_In_Parenthesis/Reverse_in_parenthesis.java new file mode 100644 index 0000000..3fa268f --- /dev/null +++ b/Reverse_In_Parenthesis/Reverse_in_parenthesis.java @@ -0,0 +1,24 @@ +import java.util.Arrays; +import java.util.function.UnaryOperator; +public class Reverse_in_parenthesis{ + public static void main (String[] args){ + String[] tests = { + "(bar)", + "foo(bar(baz))blim", + "(abc)d(efg)" + }; + for(String test : tests){ + System.out.format(" Input: '%s'%n Solution: '%s' %n%n", test, solution(test)); + } + } + + static String solution(String input){ + UnaryOperator mostNestedOperator1 = x -> { + int start = x.lastIndexOf('('); + return (start != -1) ?x.substring(start, x.indexOf(')', start) + 1) :null; // returns most nested with parenthesis + }; + for(String mostNested; (mostNested = mostNestedOperator1.apply(input)) != null; ) + input = input.replace(mostNested, new StringBuilder(mostNested.substring(1, mostNested.length() - 1)).reverse().toString()); + return input; + } +} diff --git a/Reverse_In_Parenthesis/Reverse_in_parenthesis.js b/Reverse_In_Parenthesis/Reverse_in_parenthesis.js new file mode 100644 index 0000000..8396c7d --- /dev/null +++ b/Reverse_In_Parenthesis/Reverse_in_parenthesis.js @@ -0,0 +1,21 @@ +function solution(input) { + for(let mostNested; (mostNested=findMostNested(input))!=null;){ + input = input.replace(mostNested, mostNested.substring(1, mostNested.length -1).split('').reverse().join('')) + } + return input; +} + +function findMostNested(string){ + const start = string.lastIndexOf("("); + return start !== -1 ? string.substring(start, string.indexOf(")", start) + 1) :null; +} + +const tests = [ + "(bar)", + "foo(bar(baz))blim", + "(abc)d(efg)" +]; + +for (const test of tests) { + console.log(` Input: ${test} \n Inverted: ${solution(test)}\n\n`) +} diff --git a/Reverse_In_Parenthesis/reverse_in_parenthesis_java.png b/Reverse_In_Parenthesis/reverse_in_parenthesis_java.png new file mode 100644 index 0000000..00c3510 Binary files /dev/null and b/Reverse_In_Parenthesis/reverse_in_parenthesis_java.png differ diff --git a/Reverse_In_Parenthesis/reverse_in_parenthesis_js.png b/Reverse_In_Parenthesis/reverse_in_parenthesis_js.png new file mode 100644 index 0000000..1884207 Binary files /dev/null and b/Reverse_In_Parenthesis/reverse_in_parenthesis_js.png differ