Eine Zeile:
%Vor%Es funktioniert mit allen iterierbaren Daten, Return-Liste.
%Vor%Treten Sie bei, wenn Sie eine Zeichenfolge benötigen:
%Vor%Es gibt eine ähnliche Zeichenfolge
%Vor%und ich möchte es in
zusammenführen %Vor%Weitere Beispiele: ddxddx - & gt; dxdx, abbab - & gt; abab.
Die Regel lautet:
%Vor%Ich habe es in meinem Code in Python gemacht, aber es ist langsam, wenn in einer langen Zeichenfolge.
%Vor%Gibt es einen schnelleren Weg, es zu lösen?
Update 29. April 2017
Tut mir leid, es scheint ein XY-Problem zu mögen. Auf der anderen Seite vielleicht nicht. Da ist der Inhalt
Ich habe für eine Webspinne programmiert und viele 'Tag-Pfade' wie diese bekommen
%Vor%Wie Sie sehen, gibt es einige 'Tag-Pfade', die auf die gleiche Art und Weise erstellt wurden. Daher wollte ich sie ausblenden, um herauszufinden, ob dort irgendwelche anderen 'Tag-Pfade' die gleiche Struktur haben. Nach dem Kollaps bekomme ich den 'Tag-Pfad' so.
%Vor%Das ist nur meine Idee und ich wusste nicht, ob es so ist. (Nachdem ich es versucht habe, habe ich einen anderen Weg gewählt.
Allerdings gibt es eine interessante Frage wie eine ACM-Frage.
Also vereinfache ich einen "Tag-Pfad" zu einem Charakter und bitte um Hilfe. Denn ich habe keinen schnellen Weg alleine gemacht. Tatsächlich hat die Frage viele Eckfälle, denen ich nichts ausmache und danke allen, dass sie mir geholfen haben, es zu vervollständigen.
Danke allen.
Siehe die Macht der Regex:
%Vor% Sucht nach einer Folge von 1 oder mehr beliebigen Zeichen (.+?)
(als nicht gierige Übereinstimmung, so dass es zuerst kürzere Sequenzen versucht), gefolgt von 1 oder mehr Wiederholungen der übereinstimmenden Sequenz +
, und ersetzt sie Alles mit nur der übereinstimmenden Sequenz .
Das ist eine großartige Frage / Reihe von Antworten!
Hier ist eine Implementierung mit einem Generator und String-Slicing:
%Vor%Bearbeiten: Die Schrittsuche wurde geändert, um die Quadratwurzel der Länge zu verwenden, um die Suchzeiten zu verbessern:
Dies kann ein Anfang sein:
%Vor%Das Ergebnis in den Beispielen:
%Vor%Siehe die Macht der Regex:
%Vor%Sucht nach einer Folge von 1 oder mehr beliebigen Zeichen %code% (als nicht gierige Übereinstimmung, so dass es zuerst kürzere Sequenzen versucht), gefolgt von 1 oder mehr Wiederholungen der übereinstimmenden Sequenz %code% , und ersetzt sie Alles mit nur der übereinstimmenden Sequenz %code% .
Das ist eine großartige Frage / Reihe von Antworten!
Hier ist eine Implementierung mit einem Generator und String-Slicing:
%Vor%Bearbeiten: Die Schrittsuche wurde geändert, um die Quadratwurzel der Länge zu verwenden, um die Suchzeiten zu verbessern:
Eine Zeile:
%Vor%Es funktioniert mit allen iterierbaren Daten, Return-Liste.
%Vor%Treten Sie bei, wenn Sie eine Zeichenfolge benötigen:
%Vor%Ein linearer Ansatz
%Vor%Ergebnis:
dxabcabcyyyydxycxcxz - & gt; dxabcabcydxycxcxz
Es gibt eine ähnliche Zeichenfolge
%Vor%und ich möchte es in
zusammenführen %Vor%Weitere Beispiele: ddxddx - & gt; dxdx, abbab - & gt; abab.
Die Regel lautet:
%Vor%Ich habe es in meinem Code in Python gemacht, aber es ist langsam, wenn in einer langen Zeichenfolge.
%Vor%Gibt es einen schnelleren Weg, es zu lösen?
Update 29. April 2017
Tut mir leid, es scheint ein XY-Problem zu mögen. Auf der anderen Seite vielleicht nicht. Da ist der Inhalt
Ich habe für eine Webspinne programmiert und viele 'Tag-Pfade' wie diese bekommen
%Vor%Wie Sie sehen, gibt es einige 'Tag-Pfade', die auf die gleiche Art und Weise erstellt wurden. Daher wollte ich sie ausblenden, um herauszufinden, ob dort irgendwelche anderen 'Tag-Pfade' die gleiche Struktur haben. Nach dem Kollaps bekomme ich den 'Tag-Pfad' so.
%Vor%Das ist nur meine Idee und ich wusste nicht, ob es so ist. (Nachdem ich es versucht habe, habe ich einen anderen Weg gewählt.
Allerdings gibt es eine interessante Frage wie eine ACM-Frage.
Also vereinfache ich einen "Tag-Pfad" zu einem Charakter und bitte um Hilfe. Denn ich habe keinen schnellen Weg alleine gemacht. Tatsächlich hat die Frage viele Eckfälle, denen ich nichts ausmache und danke allen, dass sie mir geholfen haben, es zu vervollständigen.
Danke allen.
Dies kann ein Anfang sein:
%Vor%Das Ergebnis in den Beispielen:
%Vor%Siehe die Macht der Regex:
%Vor%Sucht nach einer Folge von 1 oder mehr beliebigen Zeichen %code% (als nicht gierige Übereinstimmung, so dass es zuerst kürzere Sequenzen versucht), gefolgt von 1 oder mehr Wiederholungen der übereinstimmenden Sequenz %code% , und ersetzt sie Alles mit nur der übereinstimmenden Sequenz %code% .
Das ist eine großartige Frage / Reihe von Antworten!
Hier ist eine Implementierung mit einem Generator und String-Slicing:
%Vor%Bearbeiten: Die Schrittsuche wurde geändert, um die Quadratwurzel der Länge zu verwenden, um die Suchzeiten zu verbessern:
Eine Zeile:
%Vor%Es funktioniert mit allen iterierbaren Daten, Return-Liste.
%Vor%Treten Sie bei, wenn Sie eine Zeichenfolge benötigen:
%Vor%Ein linearer Ansatz
%Vor%Ergebnis:
dxabcabcyyyydxycxcxz - & gt; dxabcabcydxycxcxz
Es gibt eine ähnliche Zeichenfolge
%Vor%und ich möchte es in
zusammenführen %Vor%Weitere Beispiele: ddxddx - & gt; dxdx, abbab - & gt; abab.
Die Regel lautet:
%Vor%Ich habe es in meinem Code in Python gemacht, aber es ist langsam, wenn in einer langen Zeichenfolge.
%Vor%Gibt es einen schnelleren Weg, es zu lösen?
Update 29. April 2017
Tut mir leid, es scheint ein XY-Problem zu mögen. Auf der anderen Seite vielleicht nicht. Da ist der Inhalt
Ich habe für eine Webspinne programmiert und viele 'Tag-Pfade' wie diese bekommen
%Vor%Wie Sie sehen, gibt es einige 'Tag-Pfade', die auf die gleiche Art und Weise erstellt wurden. Daher wollte ich sie ausblenden, um herauszufinden, ob dort irgendwelche anderen 'Tag-Pfade' die gleiche Struktur haben. Nach dem Kollaps bekomme ich den 'Tag-Pfad' so.
%Vor%Das ist nur meine Idee und ich wusste nicht, ob es so ist. (Nachdem ich es versucht habe, habe ich einen anderen Weg gewählt.
Allerdings gibt es eine interessante Frage wie eine ACM-Frage.
Also vereinfache ich einen "Tag-Pfad" zu einem Charakter und bitte um Hilfe. Denn ich habe keinen schnellen Weg alleine gemacht. Tatsächlich hat die Frage viele Eckfälle, denen ich nichts ausmache und danke allen, dass sie mir geholfen haben, es zu vervollständigen.
Danke allen.