[Huawei OD-Testfragen] Berechnen Sie den Bearbeitungsabstand einer Zeichenfolge (C&Java&Python). 100 % Erfolgsquote

Themenbeschreibung

Der Levenshtein-Abstand, auch Bearbeitungsabstand genannt, bezieht sich auf die minimale Anzahl von Bearbeitungsvorgängen, die erforderlich sind, um zwischen zwei Zeichenfolgen eine Zeichenfolge in eine andere umzuwandeln. Zu den zulässigen Bearbeitungsvorgängen gehören das Ersetzen eines Zeichens durch ein anderes, das Einfügen eines Zeichens und das Löschen eines Zeichens. Der Algorithmus zur Bearbeitung der Distanz wurde erstmals vom russischen Wissenschaftler Levenshtein vorgeschlagen und wird daher auch Levenshtein-Distanz genannt.

Zum Beispiel:

字符串A: abcdefg
字符串B: abcdef

Der Zweck wird durch Hinzufügen oder Streichen des Zeichens „g“ erreicht. Für beide Szenarien ist ein Vorgang erforderlich. Definieren Sie die Häufigkeit, die für diesen Vorgang erforderlich ist, als Abstand zwischen zwei Zeichenfolgen.

Erfordern:

Schreiben Sie für zwei beliebige Zeichenfolgen einen Algorithmus, um deren Bearbeitungsentfernung zu berechnen.

eingeben

Jeder Satz von Anwendungsfällen besteht aus insgesamt zwei Zeilen, bei denen es sich um die beiden Eingabezeichenfolgen handelt

Ausgang

Geben Sie für jeden Satz von Anwendungsfällen eine Zeile aus, die den Abstand der Zeichenfolge darstellt

Probe 1

eingeben

abcdefg
abcdef

Ausgang

1

Ideenanalyse

Die Bearbeitungsdistanz ist eine sehr klassische Klasse dynamischer Programmierprobleme. Wir verwenden dp[i][j], um den Bearbeitungsabstand anzugeben, der erforderlich ist, damit die ersten i Zeichen von Zeichenfolge A mit den ersten j Zeichen von Zeichenfolge B übereinstimmen. Zuerst müssen Sie den Status initialisieren, wenn eine Zeichenfolge leer ist &

Supongo que te gusta

Origin blog.csdn.net/weixin_45541762/article/details/130918531
Recomendado
Clasificación