📜  通过在任意位置插入给定数字来最大化数字 N(1)

📅  最后修改于: 2023-12-03 15:28:25.238000             🧑  作者: Mango

通过在任意位置插入给定数字来最大化数字 N

有一个数字 N 和一个数字 X,你可以通过在任意位置插入数字 X 的方式最大化数字 N。请写一个函数来实现这个功能。

思路

要想最大化数字 N,我们需要在 N 的最高位尽可能地插入数字 X。因此,我们需要先确定 X 的插入位置。

我们可以将数字 N 转换为一个字符串,然后从左往右遍历每一位,找到第一位比 X 大的位置,即为插入位置。如果没有找到这样的位置,则插入到字符串的末尾。

插入完成后,再将字符串转换为数字即可。

代码
def insert_maximum(n: int, x: int) -> int:
    n_str = str(n)
    for i in range(len(n_str)):
        if int(n_str[i]) < x:
            return int(n_str[:i] + str(x) + n_str[i:])
    return int(n_str + str(x))
示例
assert insert_maximum(1234, 5) == 51234
assert insert_maximum(4321, 5) == 54321
assert insert_maximum(1234, 9) == 91234