📌  相关文章
📜  打印通过在给定字符串中插入数字 X 形成的最大整数

📅  最后修改于: 2022-05-13 01:56:09.689000             🧑  作者: Mango

打印通过在给定字符串中插入数字 X 形成的最大整数

给定一个大小为N的字符串S代表一个大整数值和一个正数X ,任务是打印通过在字符串S中插入数字X形成的最大整数。

例子:

方法:这个问题可以通过遍历字符串S的字符来解决。请按照以下步骤解决此问题:

  • 如果数字S为正数,则执行以下步骤:
    • 使用变量i[0, N-1]范围内迭代并执行以下步骤
      • 如果S[i]小于X则在S[i]之前插入数字X中断循环
    • 如果上述情况都不满足,则将数字X附加到字符串S的末尾。
  • 否则,如果数字S为负数,则执行以下步骤:
    • 使用变量i[0, N-1]范围内迭代并执行以下步骤:
      • 如果S[i]小于X ,则在S[i]之前插入数字X中断循环。
    • 如果上述情况都不满足,则将数字X附加到字符串S的末尾。
  • 最后,打印最大可能的字符串,用S表示。

下面是上述方法的实现:

Python3
# Python program for the above approach
  
# Function to find Largest Number after
# insertion of a digit
def largestValue(S, X):
  
    # If S is negative
    if S[0] == '-':
        f = 0
        # Iterate through characters of S
        for i, val in enumerate(S):
            if i == 0:
                continue
  
            # If digit x is less
            # than S[i] insert digit
            # after X
            if X < int(val):
                f = 1
                S = S[:i] + str(X) + S[i:]
                break
  
        if f == 0:
            S = S + str(X)
  
    # If S is positive
    else:
        f = 0
  
        # If x > S[i] insert x
        for i, val in enumerate(S):
            if X > int(val):
                f = 1
                S = S[:i] + str(X) + S[i:]
                break
  
        if f == 0:
            S = S + str(X)
  
    # Return the answer
    return S
  
  
# Driver Code
  
# Given Input
S = "-13"
X = 2
  
# Funtion Call
print(largestValue(S, X))


输出
-123

时间复杂度: O(N)
辅助空间: O(1)