1881. Maximum Value after Insertion

Difficulty:
Related Topics:
Similar Questions:

    Problem

    You are given a very large integer n, represented as a string,​​​​​​ and an integer digit x. The digits in n and the digit x are in the inclusive range [1, 9], and n may represent a negative number.

    You want to **maximize **n's numerical value by inserting x anywhere in the decimal representation of n​​​​​​. You cannot insert x to the left of the negative sign.

    Return **a string representing the *maximum* value of n​​​​​​ after the insertion**.

      Example 1:

    Input: n = "99", x = 9
    Output: "999"
    Explanation: The result is the same regardless of where you insert 9.
    

    Example 2:

    Input: n = "-13", x = 2
    Output: "-123"
    Explanation: You can make n one of {-213, -123, -132}, and the largest of those three is -123.
    

      Constraints:

    Solution (Java)

    class Solution {
        public String maxValue(String n, int x) {
            int i = 0;
            int sign = n.charAt(0) == '-' ? -1 : 1;
            for (; i < n.length(); i++) {
                if (n.charAt(i) != '-' && (sign * (n.charAt(i) - '0') < sign * x)) {
                    break;
                }
            }
            return n.substring(0, i) + x + n.substring(i);
        }
    }
    

    Explain:

    nope.

    Complexity: