Étant donné une chaîne S de taille N représentant une grande valeur entière et un chiffre positif X, la tâche consiste à imprimer le plus grand entier formé en insérant le chiffre X dans la chaîne S.
Exemples:
Saisir: S = « 99 », X = 9
Sortir: 999
Explication:
Le plus grand nombre pouvant être formé est 999 après avoir inséré 9 dans « 99 ».
Saisir: S = « -13 », X = 2
Sortir: -123
Explication:
Le plus grand nombre qui peut être formé est -123 après avoir inséré 2 dans « -13 ».
Approcher: Le problème peut être résolu en itérant sur le caractère de la chaîne S. Suivez les étapes ci-dessous pour résoudre ce problème :
- Si le nombre S est positif, puis procédez comme suit :
- Itérer dans la plage [0, N-1] en utilisant la variable je et effectuez les étapes suivantes:
- Si S[i] est inférieur à X puis insérez le chiffre X avant S[i] et Pause la boucle.
- Si aucun des cas ci-dessus ne satisfait, ajoutez le chiffre X à la fin de la chaîne S.
- Itérer dans la plage [0, N-1] en utilisant la variable je et effectuez les étapes suivantes:
- Sinon, si le nombre S est négatif, puis procédez comme suit :
- Itérer dans la plage [0, N-1] en utilisant la variable je et effectuez les étapes suivantes :
- Si S[i] est inférieur à X, puis insérez le chiffre X avant S[i] et Pause la boucle.
- Si aucun des cas ci-dessus ne satisfait, ajoutez le chiffre X à la fin de la chaîne S.
- Itérer dans la plage [0, N-1] en utilisant la variable je et effectuez les étapes suivantes :
- Enfin, imprimez la plus grande chaîne possible, représentée par S.
Vous trouverez ci-dessous la mise en œuvre de l’approche ci-dessus :
Python3
def la plus grandeValeur(S, X) : si S[0] == ‘-‘ : f = 0 pour i, val dans énumérer(S) : si je == 0 : Continuez si X < int(val) : f = 1 S = S[:i] + str(X) + S[i:] Pause si f == 0 : S = S + str(X) autre: f = 0 pour i, val dans énumérer(S) : si X > int(val) : f = 1 S = S[:i] + str(X) + S[i:] Pause si f == 0 : S = S + str(X) Retour S = « -13 » X = 2 print(plusgrandeValeur(S, X)) |
Complexité temporelle : AU)
Espace auxiliaire : O(1)
Attention lecteur ! N’arrêtez pas d’apprendre maintenant. Obtenez tous les concepts mathématiques importants pour la programmation compétitive avec le Mathématiques essentielles pour le cours CP à un prix adapté aux étudiants. Pour compléter votre préparation de l’apprentissage d’une langue à DS Algo et bien d’autres, veuillez vous référer Cours complet de préparation aux entretiens.