-1
votes

Comment augmenter la chaîne longue contenant (0,1,2,3,4,5,6 ,?) en remplaçant un '?' avec le plus grand numéro voisin?

J'essaie d'augmenter une longue chaîne pouvant contenir plusieurs chiffres de chiffres (0,1,2,3,4,5,6 ,?) Considérez une chaîne "00000000000004? 0 ?? 100001 ?? 2? 0? 10000000" . J'essaie de remplacer tous les points d'interrogation (?) par le plus grand chiffre voisin. La comparaison doit être effectuée à partir du caractère gauche et du caractère droit au point d'interrogation (?) .

String d'entrée: "000000000004? 0 ?? 100001 ?? 2? 0? 10000000 " Chaîne de sortie: "000000000000044011100001222201100000000"

J'ai écrit une fonction qui finit par les remplacer lors de la première itération de la boucle elle-même qui permet de remplacer le ? par le plus grand nombre, c'est-à-dire 4 dans ce cas. Vérifiez le code de code ci-dessous.

sortie incorrecte: "000000000000044044100001444240410000000" xxx

chaîne d'entrée: "000000000004? 0 ?? 100001 ?? 2? 0? 10000000 "

String de sortie attendu: " 0000000000000440111000012222011000000000 "

chaîne de sortie réelle: "00000000000004404410000144424044100001444240410000000"

Il existe plusieurs cordes comme celle-ci avec différentes combinaisons de chiffres et ? . J'espère que je l'ai bien expliqué. S'il vous plaît aider. Merci.


0 commentaires

3 Réponses :


0
votes

Votre programme semble trop compliqué. Je n'ai même pas essayé de comprendre. Pouvez-vous lire et comprendre cela? XXX


2 commentaires

Ceci échoue sur méthody_augment ("?? 123 ?? 1") avec AttributeError: "NOETYPE" L'objet n'a aucun attribut 'span'


Les exigences n'étaient pas vraiment claires, alors je suppose "un nombre quelconque de ??? partout' ...



0
votes

Voici un moyen de le faire, avec quelques tests: xxx

Les tests, certaines chaînes et la sortie attendue: xxx


0 commentaires

0
votes

Je ne suis pas sûr à quel point cela est efficace, mais vous pouvez diviser votre liste telle que vous conservez toutes les valeurs consécutives de ? code> s et ensemble en tant qu'éléments distincts, coussinets qui figurent avec des caractères principaux et de fuite qui " N'ayez jamais passer comme test de valeur code> max code> par rapport aux chiffres ou ? code> s (et accédez également aux indices légèrement plus pratiques), par exemple:

000000000004?0??100001??2?0?10000000 -> 000000000004401110000122220110000000
?????????9 -> 9999999999
9????????0 -> 9999999990
0????????9 -> 0999999999
?0???????9 -> 0099999999
123??????? -> 1233333333
12?????321 -> 1233333321
?????????? -> None


1 commentaires

Merci beaucoup Jon.i l'a essayé avec plusieurs variantes de la chaîne. Fonctionne comme un pro.