Dada una string S de tamaño N que representa un valor entero grande y un dígito positivo X , la tarea es imprimir el entero más grande formado al insertar el dígito X en la string S .
Ejemplos:
Entrada: S = “99”, X = 9
Salida: 999
Explicación:
El número más grande que se puede formar es 999 después de insertar 9 en “99”.Entrada: S = “-13”, X = 2
Salida: -123
Explicación:
El número más grande que se puede formar es -123 después de insertar 2 en “-13”.
Enfoque: el problema se puede resolver iterando sobre el carácter de la string S . Siga los pasos a continuación para resolver este problema:
- Si el número S es positivo, realice los siguientes pasos:
- Iterar en el rango [0, N-1] usando la variable i y realizar los siguientes pasos :
- Si S[i] es menor que X , inserte el dígito X antes de S[i] y rompa el bucle .
- Si ninguno de los casos anteriores satisface, agregue el dígito X al final de la string S .
- Iterar en el rango [0, N-1] usando la variable i y realizar los siguientes pasos :
- De lo contrario, si el número S es negativo, realice los siguientes pasos:
- Iterar en el rango [0, N-1] al usar la variable i y realizar los siguientes pasos:
- Si S[i] es menor que X , inserte el dígito X antes de S[i] y rompa el bucle.
- Si ninguno de los casos anteriores satisface, agregue el dígito X al final de la string S .
- Iterar en el rango [0, N-1] al usar la variable i y realizar los siguientes pasos:
- Finalmente, imprima la string más grande posible, representada por S .
A continuación se muestra la implementación del enfoque anterior:
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
Complejidad temporal: O(N)
Espacio auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA