-1
votes

Suppression de caractères répétitifs adjacents dans une chaîne

Je veux supprimer des caractères répétitifs adjacents dans une chaîne de python 3. Pour EX si l'entrée est AABBC La sortie est abc ou si l'entrée est AAABBBCC La sortie est ABC . J'ai fait deux tentatives pour résoudre ce problème.

tentative # 1 xxx

Le code ci-dessus renvoie la même chaîne entrée entrée. Si j'entre AABBC , il renvoie simplement la même chaîne. Ne sachant pas ce que je faisais mal, j'ai essayé une autre tentative.

tentative # 2 xxx

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 il renvoie la liste ['A', "B", "C"] qui est parfaitement bien, mais avec l'entrée AAABBCC Il renvoie ['A', 'A', 'B', 'C'] .


0 commentaires

4 Réponses :


0
votes

Utilisation de Regex:

ABC
ABC


0 commentaires

0
votes

Vous pouvez utiliser iTertools pour grouper le char acteurs comme, xxx


0 commentaires

0
votes
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.

0 commentaires

0
votes

Une solution courte facile à comprendre: xxx

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.

Notez que vous n'avez pas besoin d'importer une nouvelle bibliothèque.


0 commentaires