Skip to content

Minimize Result by Adding Parentheses to ExpressionUntitled

Leetcode - Minimize Result by Adding Parentheses to Expression

Submission

package dev.namtx.leetcode;  

/**
 * https://leetcode.com/contest/weekly-contest-288/problems/minimize-result-by-adding-parentheses-to-expression/ */public class MinimizeResultByAddingParenthesesToExpression {  
    public String minimizeResult(String expression) {  
        int min = sum(expression);  
        String ans = "(" + expression + ")";  
        int plusPosition = expression.indexOf("+");  

        for (int i = 0; i < plusPosition; i++) {  
            for (int j = plusPosition + 1; j < expression.length(); j++) {  
                int first = 1;  
                if (i > 0) {  
                    first = Integer.parseInt(expression.substring(0, i));  
                }  
                int last = 1;  
                if (j < expression.length() - 1) {  
                    last = Integer.parseInt(expression.substring(j + 1));  
                }  

                int value = first*sum(expression.substring(i, j + 1))* last;  
                if (value < min) {  
                    min = value;  
                    ans = expression.substring(0, i) + "(" + expression.substring(i, j + 1) + ")" + expression.substring(j + 1);  
                }  
            }  
        }  

        return ans;  
    }  

    private int sum(String expression) {  
        String[] parts = expression.split("\\+");  
        return Integer.parseInt(parts[0]) + Integer.parseInt(parts[1]);  
    }  

    public static void main(String[] args) {  
        System.out.println(new MinimizeResultByAddingParenthesesToExpression().minimizeResult("1+2"));  
    }  
}