Eingang:
Zwei Zeichenfolgen ohne Zeilenumbrüche oder Leerzeichen.
Ausgabe:
Beide Eingabezeichenfolgen in getrennten Zeilen, ggf. mit Leerzeichen † für eine der beiden Zeichenfolgen. Und eine dritte Zeile mit den Zeichen A, R, Mund , was hinzugefügt , entfernt , verändert und unverändert .
† Wir fügen der oberen oder unteren Eingabezeichenfolge Leerzeichen hinzu (falls erforderlich). Ziel dieser Herausforderung ist es, möglichst wenig Änderungen ( ARM) auszugeben , auch bekannt als Levenshtein-Abstand .
Beispiel:
Angenommen, die Eingabezeichenfolgen sind ABCDEFund AFBECD, dann wäre die Ausgabe wie folgt:
A B CDEF
AFBECD
A A RR
Hier sind einige andere mögliche ungültige Ausgaben als Beispiel (und es gibt noch viel mehr):
ABCDEF
AFBECD
MMMMM
A BCDEF
AFBECD
A MMMR
AB CDEF
AFBECD
MAMMMR
ABC DEF
AFBECD
MMAMMR
ABC DEF
AFBECD
MMAA RR
ABCDEF
AFB ECD
MMR MA
AB CDEF // This doesn't make much sense,
AFBECD // but it's to show leading spaces are also allowed
AM A RR
Keine davon hat jedoch nur vier Änderungen, also nur A B CDEF\nAFBECD \n A A RR eine gültige Ausgabe für diese Herausforderung vorliegt.
Herausforderungsregeln:
- Sie können davon ausgehen, dass die Eingabezeichenfolgen keine neuen Zeilen oder Leerzeichen enthalten.
- Die beiden Eingabezeichenfolgen können unterschiedlich lang sein.
- Eine der beiden Eingabezeichenfolgen sollte unverändert bleiben, mit Ausnahme von optionalen führenden / nachfolgenden Leerzeichen.
- Wenn Ihre Sprachen nichts anderes als ASCII unterstützen, können Sie davon ausgehen, dass die Eingabe nur druckbare ASCII-Zeichen enthält.
- Das Eingabe- und Ausgabeformat ist flexibel. Sie können drei separate Strings, ein String-Array, einen einzelnen String mit Zeilenumbrüchen, ein 2D-Zeichen-Array usw. haben.
- Sie dürfen stattdessen etwas anderes verwenden
ARM, aber geben Sie an , was Sie verwendet haben (z. B.123oderabc.usw.). - Wenn mehr als eine gültige Ausgabe mit der gleichen Anzahl von Änderungen möglich ist (
ARM), können Sie auswählen, ob eine der möglichen Ausgaben oder alle davon ausgegeben werden sollen. Führende und nachfolgende Leerzeichen sind optional:
A B CDEF AFBECD A A RRoder
"A B CDEF\nAFBECD\n A A RR" ^ Note there are no spaces here
Allgemeine Regeln:
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Lassen Sie sich von Code-Golf-Sprachen nicht davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, für jede Programmiersprache eine möglichst kurze Antwort zu finden. - Es gelten Standardregeln Ihre Antwort Daher dürfen Sie STDIN / STDOUT, Funktionen / Methode mit den richtigen Parametern und vollständige Programme verwenden. Ihr Anruf.
- Standardlücken sind verboten.
- Fügen Sie nach Möglichkeit einen Link mit einem Test für Ihren Code hinzu.
- Fügen Sie ggf. auch eine Erklärung hinzu.
Testfälle:
In: "ABCDEF" & "AFBECD"
Output (4 changes):
A B CDEF
AFBECD
A A RR
In: "This_is_an_example_text" & "This_is_a_test_as_example"
Possible output (13 changes):
This_is_an _example_text
This_is_a_test_as_example
MAAAAAAA RRRRR
In: "AaAaABBbBBcCcCc" & "abcABCabcABC"
Possible output (10 changes):
AaAaABBbBBcCcCc
abcABCab cABC
R MM MMMR MM R
In: "intf(){longr=java.util.concurrent.ThreadLocalRandom.current().nextLong(10000000000L);returnr>0?r%2:2;}" & "intf(){intr=(int)(Math.random()*10);returnr>0?r%2:2;}"
Possible output (60 changes):
intf(){longr=java.util.concurrent.ThreadLocalRandom.current().nextLong(10000000000L);returnr>0?r%2:2;}
intf(){i ntr=( i n t)(M ath.r andom ()* 10 );returnr>0?r%2:2;}
MR M MRRRRRR RRRR RRRRRR MMMRR MMMMRRR RRRRRRRR MRRRRRRRRR RRRRRRRRRR
In: "ABCDEF" & "XABCDF"
Output (2 changes):
ABCDEF
XABCD F
A R
In: "abC" & "ABC"
Output (2 changes):
abC
ABC
MM
