tests = [    
        (4748, 47),
        (123, 122),
        (5347, 3475),
        (121, 12),
        (213, 12),
        (321, 132),
        (7234723, 7234),
        (122, 21),
        (12, 1),
        (13571357, 13571356),
        (3433, 334),
        (456123456, 234561)
]

def solve(n):
    s = str(n)
    m = len(s)

    cds = [n - 1]
    for k in range(1, m):
        l, r = s[:k], s[k:]
        print("Left: ", l, ", Right :", r)
        st = str(int(l) + 1)
        for j in range(len(r) + 1):
            t = r[:j] + st
            print("j :", j, "t :", t)
            if t.startswith(r):
                cds.append(int(t) - 1)
    return min(cds)
              
for inp, out in tests:
    ans = solve(inp)
    print("ans :", ans, "exp :", out)
        

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: