Unter Bezugnahme auf HIER
Wir haben zwei Strings A und B mit demselben Super-Zeichensatz. Wir müssen diese Zeichenfolgen ändern, um zwei gleiche Zeichenfolgen zu erhalten. In jeder Bewegung Wir können eine der folgenden Operationen ausführen:
1- tausche zwei aufeinander folgende Zeichen einer Zeichenkette | 2- Tausche die erste und die letzten Zeichen einer Zeichenfolge
Eine Bewegung kann für jede der beiden Strings ausgeführt werden. Was ist die Mindestanzahl? von Zügen, die wir brauchen, um zwei gleiche Saiten zu erhalten? Eingang Format und Einschränkungen: Die erste und die zweite Zeile der Eingabe enthält zwei Saiten A und B. Es ist garantiert, dass die Supersätze ihre Charaktere sind gleich. 1 & lt; = Länge (A) = Länge (B) & lt; = 2000 Alle Eingabezeichen stehen zwischen 'a' und 'z'
Es sieht so aus, als müsste das mit dynamischer Programmierung gelöst werden. Aber ich bin nicht in der Lage, mit Gleichungen zu kommen. Jemand hat sie als Antwort vorgeschlagen - aber es sieht nicht gut aus.
%Vor%Sie haben zwei atomare Operationen:
Tausche aufeinanderfolgende mit Kosten 1
Tauschen Sie zuerst und zuletzt mit Kosten 1
Eine interessante Tatsache:
So können wir eine allgemeinere Operation ableiten
Das Problem erscheint mir eher nicht zweidimensional, oder doch kann ich die Dimensionen nicht bestimmen. Nehmen Sie diesen Algorithmus als naiven Ansatz:
%Vor%