Python - Wie entferne Duplikate nur, wenn sie hintereinander in einer Zeichenkette stehen?

8

Bei einer Zeichenfolge wie '12233322155552' kann ich durch Entfernen der Duplikate '1235' erhalten. Aber was ich behalten möchte, ist '1232152', nur die fortlaufenden Duplikate entfernend.

Vielen Dank für Ihre Hilfe im Voraus.

    
user1522020 12.07.2012, 21:19
quelle

8 Antworten

6

Microsoft / Amazon Vorstellungsgespräch Art der Frage: Dies ist der Pseudocode, der eigentliche Code ist als Übung übrig.

%Vor%

Als eine höhere Ebene, versuchen Sie (nicht wirklich die Implementierung):

%Vor%     
cybertextron 12.07.2012 21:22
quelle
5

Hinweis: Das itertools-Modul ist sehr nützlich. Eine Funktion, insbesondere iertools.groupby , könnte hier sehr nützlich sein:

  

itertools.groupby (iterable [, key])

     

Machen Sie einen Iterator, der aufeinanderfolgende Schlüssel und Gruppen ausgibt   das iterierbare. Der Schlüssel ist eine Funktion, die für jeden einen Schlüsselwert berechnet   Element. Wenn nicht angegeben oder "Keine", wird als Schlüssel standardmäßig eine Identität verwendet   Funktion und gibt das Element unverändert zurück. Im Allgemeinen das iterable   muss bereits nach der gleichen Schlüsselfunktion sortiert sein.

Da Strings iterierbar sind, können Sie Folgendes tun:

%Vor%

was alles in einer klaren Linie gemacht werden kann.

    
DSM 12.07.2012 21:33
quelle
5
%Vor%     
Paulo Freitas 16.07.2012 06:01
quelle
3

Sie können itertools verwenden, hier ist der eine Liner

%Vor%     
akash karothiya 24.05.2017 11:57
quelle
1

+1 für groupby. Aus dem Stand etwas wie:

%Vor%

Köche für mich in Python 2.7.2

    
godisdad 12.07.2012 22:46
quelle
1

Zunächst können Sie nichts aus einer Zeichenfolge in Python entfernen (google "Python unveränderliche Zeichenfolge", wenn dies nicht klar ist).

M erster Ansatz wäre:

%Vor%

oder mit dem itirtools-Hinweis von oben:

%Vor%     
paul 12.07.2012 23:49
quelle
0
%Vor%

Sie können die endgültige Ausgabe als 1232152

erhalten     
Prasanna 16.07.2012 05:28
quelle
0
%Vor%     
Fuji Clado 19.02.2017 14:05
quelle

Tags und Links