All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g1801_1900.s1881_maximum_value_after_insertion.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
package g1801_1900.s1881_maximum_value_after_insertion;

// #Medium #String #Greedy #2022_05_11_Time_12_ms_(85.08%)_Space_42.8_MB_(98.31%)

/**
 * 1881 - Maximum Value after Insertion\.
 *
 * Medium
 *
 * 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.
 *
 * *   For example, if `n = 73` and `x = 6`, it would be best to insert it between `7` and `3`, making `n = 763`.
 * *   If `n = -55` and `x = 2`, it would be best to insert it before the first `5`, making `n = -255`.
 *
 * 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:**
 *
 * *   1 <= n.length <= 105
 * *   `1 <= x <= 9`
 * *   The digits in `n` are in the range `[1, 9]`.
 * *   `n` is a valid representation of an integer.
 * *   In the case of a negative `n`, it will begin with `'-'`.
**/
public 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);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy