J'essaie d'augmenter une longue chaîne pouvant contenir plusieurs chiffres de chiffres String d'entrée: 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 sortie incorrecte: chaîne d'entrée: String de sortie attendu: chaîne de sortie réelle: Il existe plusieurs cordes comme celle-ci avec différentes combinaisons de chiffres et (0,1,2,3,4,5,6 ,?) code>
Considérez une chaîne
"00000000000004? 0 ?? 100001 ?? 2? 0? 10000000" code>.
J'essaie de remplacer tous les points d'interrogation
(?) Code> 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
(?) Code>.
"000000000004? 0 ?? 100001 ?? 2? 0? 10000000 " code>
Chaîne de sortie:
"000000000000044011100001222201100000000" code> p>
? Code> par le plus grand nombre, c'est-à-dire 4 dans ce cas. Vérifiez le code de code ci-dessous. P>
"000000000000044044100001444240410000000" code> p>
"000000000004? 0 ?? 100001 ?? 2? 0? 10000000 " Code> p>
" 0000000000000440111000012222011000000000 " code> p>
"00000000000004404410000144424044100001444240410000000" Code> p>
? Code>. J'espère que je l'ai bien expliqué. S'il vous plaît aider. Merci. P> p>
3 Réponses :
Votre programme semble trop compliqué. Je n'ai même pas essayé de comprendre. Pouvez-vous lire et comprendre cela?
Ceci échoue sur méthody_augment ("?? 123 ?? 1") code> avec
AttributeError: "NOETYPE" L'objet n'a aucun attribut 'span' code>
Les exigences n'étaient pas vraiment claires, alors je suppose "un nombre quelconque de ??? partout' ...
Voici un moyen de le faire, avec quelques tests: Les tests, certaines chaînes et la sortie attendue: p>
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
Merci beaucoup Jon.i l'a essayé avec plusieurs variantes de la chaîne. Fonctionne comme un pro.