Wejście:
Dwa ciągi bez znaków nowej linii i białych znaków.
Wynik:
Oba ciągi wejściowe w oddzielnych wierszach, w razie potrzeby ze spacjami † dla jednego z dwóch ciągów. Oraz trzecią linię z postaci A, R, Mi , reprezentujący dodane , usunięte , zmodyfikowane i niezmienione .
† Dodajemy spacje do górnego lub dolnego ciągu wejściowego (jeśli musimy). Celem tego wyzwania jest uzyskanie ARMmożliwie najmniejszej liczby zmian ( ), znanych również jako odległość Levenshteina .
Przykład:
Powiedzmy, że ciągi wejściowe ABCDEFi AFBECD, następnie wyjście byłoby to:
A B CDEF
AFBECD
A A RR
Oto kilka innych możliwych nieprawidłowych danych wyjściowych jako przykład (i jest o wiele więcej):
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
Żadna z nich nie ma jednak tylko czterech zmian, więc A B CDEF\nAFBECD \n A A RRjest to tylko poprawny wynik dla tego wyzwania.
Zasady konkursu:
- Możesz założyć, że ciągi wejściowe nie będą zawierać żadnych nowych wierszy ani spacji.
- Dwa ciągi wejściowe mogą mieć różne długości.
- Jeden z dwóch ciągów wejściowych powinien pozostać bez zmian, z wyjątkiem opcjonalnych spacji początkowych / końcowych.
- Jeśli twoje języki nie obsługują niczego oprócz ASCII, możesz założyć, że dane wejściowe będą zawierały tylko drukowalne znaki ASCII.
- Format wejściowy i wyjściowy są elastyczne. Możesz mieć trzy oddzielne ciągi, tablicę ciągów, pojedynczy ciąg znaków z nowymi wierszami, tablicę znaków 2D itp.
- Możesz użyć czegoś innego zamiast
ARM, ale określ, czego użyłeś (tj.123Lubabc., itd.) - Jeśli możliwe jest więcej niż jedno prawidłowe wyjście z taką samą ilością zmian (
ARM), możesz wybrać, czy chcesz wypisać jedno z możliwych wyników, czy wszystkie. Wiodące i końcowe spacje są opcjonalne:
A B CDEF AFBECD A A RRlub
"A B CDEF\nAFBECD\n A A RR" ^ Note there are no spaces here
Główne zasady:
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Nie pozwól, aby języki gry w golfa zniechęcały Cię do publikowania odpowiedzi w językach niekodujących golfa. Spróbuj znaleźć możliwie najkrótszą odpowiedź na „dowolny” język programowania. - Do odpowiedzi odnoszą się standardowe reguły , więc możesz używać STDIN / STDOUT, funkcji / metody z odpowiednimi parametrami, pełnych programów. Twoja decyzja.
- Domyślne luki są zabronione.
- Jeśli to możliwe, dodaj link z testem swojego kodu.
- W razie potrzeby dodaj również wyjaśnienie.
Przypadki testowe:
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
