Je veux supprimer des caractères répétitifs adjacents dans une chaîne de python 3. Pour EX si l'entrée est tentative # 1 p> Le code ci-dessus renvoie la même chaîne entrée entrée. Si j'entre tentative # 2 p> Le code ci-dessus fonctionne pour deux caractères répétés, mais échoue lorsque Il y a 3 caractères répétitifs ou plus. Si j'entraîne AABBC CODE> La sortie est abc code> ou si l'entrée est AAABBBCC CODE> La sortie est ABC code>. J'ai fait deux tentatives pour résoudre ce problème. AABBC code>, il renvoie simplement la même chaîne. Ne sachant pas ce que je faisais mal, j'ai essayé une autre tentative. P> AABBC code> il renvoie la liste ['A', "B", "C"] code> qui est parfaitement bien, mais avec l'entrée AAABBCC Code> Il renvoie ['A', 'A', 'B', 'C'] code>. p> p>
4 Réponses :
Utilisation de Regex:
ABC ABC
Vous pouvez utiliser iTertools code> pour grouper le char code> acteurs comme,
string = 'AAABBBCC'
result = ''
for letter in string:
if len(result) > 0:
if result[-1] != letter: # [-1] is the last letter
result += letter
else:
result = letter # the first letter will always be included
print(result) # ABC
That is, only append the letter if it is not already at the end of the result string.
Une solution courte facile à comprendre: Vous créez d'abord une liste des lettres qui respecte une certaine condition, puis vous convertissez cette liste en une chaîne. Cet algorithme peut être utilisé pour de nombreuses conditions différentes. P> Notez que vous n'avez pas besoin d'importer une nouvelle bibliothèque. P> p>