An algorithm for matching run-length coded strings

An algorithm for the computation of the edit distance of run-length coded strings is given. In run-length coding, not all individual symbols in a string are explicitly listed. Instead, one run of identical consecutive symbols is coded by giving one representative symbol together with its multiplicity. The algorithm determines the minimum cost sequence of edit operations transforming one string into another. In the worst case, the algorithm has a time complexity ofO(n·m), wheren andm give the lengths of the strings to be compared. In the best case, the time complexity isO(k·l), wherek andl are the numbers of runs of identical symbols in the two strings under comparison.ZusammenfassungWir geben einen Algorithmus zur Bestimmung der Ähnlichkeit lauflängencodierter Zeichenketten an. Bei der Lauflängencodierung werden nicht alle Symbole einer Zeichenkette explizit angegeben. Statt dessen wird eine Sequenz identischer aufeinanderfolgender Zeichen durch einen Repräsentanten zusammen mit der Häufigkeit des Auftretens dargestellt. Der Algorithmus bestimmt die Folge von Editieroperationen minimaler Kosten, die eine Zeichenkette in eine andere überführt. Im schlechtesten Fall hat der Algorithmus eine Zeitkomplexität vonO(n·m), wobein undm die Längen der zu vergleichenden Zeichenketten bezeichnen. Die Zeitkomplexität im besten Fall isO(k·l), wobeik undl die Anzahl der Sequenzen gleicher Symbole in den beiden Zeichenketten darstellen.