Вхід:
Два рядки без нових рядків або пробілів.
Вихід:
Обидва вхідних рядка в окремих рядках, з пробілами, де необхідно † для одного з двох рядків. І третій рядок з символами A, R, Mі , що представляє собою додана , видалена , змінена , і без змін .
† Ми додаємо пробіли у верхній або нижній рядок введення (якщо це потрібно). Мета цього виклику - вивести з найменшою ARMможливою кількістю змін ( ), також відомих як відстань Левенштейна .
Приклад:
Скажімо, вхідними рядками є ABCDEFі AFBECD, тоді вихід буде таким:
A B CDEF
AFBECD
A A RR
Ось декілька інших можливих недійсних результатів на прикладі (а їх набагато більше):
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
Однак жодна з цих змін не має лише чотирьох змін, тому A B CDEF\nAFBECD \n A A RRдля цього виклику є лише допустимим результатом.
Правила виклику:
- Можна припустити, що вхідні рядки не містять нових рядків або пробілів.
- Два вхідних рядка можуть бути різної довжини.
- Один з двох вхідних рядків повинен залишатися таким, як є, за винятком додаткових проміжних / кінцевих пробілів.
- Якщо ваші мови не підтримують нічого, крім ASCII, ви можете припустити, що вхід буде містити лише друковані символи ASCII.
- Формат введення та виведення є гнучким. Ви можете мати три окремі рядки, масив String, один рядок з новими рядками, двовимірний масив символів тощо.
- Вам дозволяється використовувати щось інше замість
ARM, але вкажіть, що ви використовували (тобто123, абоabc.тощо) - Якщо можливий більш ніж один дійсний вихід з однаковою кількістю змін (
ARM), ви можете вибрати, чи потрібно виводити один з можливих виходів або всі вони. Провідні та кінцеві місця не є обов'язковими:
A B CDEF AFBECD A A RRабо
"A B CDEF\nAFBECD\n A A RR" ^ Note there are no spaces here
Загальні правила:
- Це код-гольф , тому найкоротша відповідь у байтах виграє.
Не дозволяйте мовам коду-гольфу відштовхувати вас від публікації відповідей з мов, що не кодують гольф. Спробуйте придумати якомога коротшу відповідь на "будь-яку" мову програмування. - Діють стандартні правилаДля вашої відповіді , тому вам дозволяється використовувати STDIN / STDOUT, функції / метод з відповідними параметрами, повноцінні програми. Твій дзвінок.
- Лазівки за замовчуванням заборонені.
- Якщо можливо, додайте посилання з тестом для вашого коду.
- Також, будь ласка, додайте пояснення, якщо це необхідно.
Тестові приклади:
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
