Giriş:
Satırları veya boşlukları olmayan iki dize.
Çıktı:
Her iki giriş dizesi ayrı satırlarda, gerekirse iki dizgiden biri için boşluklarla † . Ve karakterlerle üçüncü satır A
, R
, M
ve , ifade eden ilave , çıkarılabilir , değiştirilebilir ve değişmez .
† Üst veya alt giriş dizesine boşluk ekleriz (gerekirse). Bu zorluğun amacı ARM
, Levenshtein mesafesi olarak da bilinen, mümkün olan en az miktarda değişiklikle ( ) çıkış yapmaktır .
Misal:
Diyelim ki girdi dizeleri ABCDEF
ve AFBECD
sonra çıktı şu olacaktır:
A B CDEF
AFBECD
A A RR
Örnek olarak bazı olası geçersiz çıktılar (ve çok daha fazlası var):
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
Ancak bunların hiçbirinde sadece dört değişiklik yok, sadece A B CDEF\nAFBECD \n A A RR
bu zorluk için geçerli bir çıktı.
Zorluk kuralları:
- Giriş dizelerinin yeni satır veya boşluk içermediğini varsayabilirsiniz.
- İki giriş dizesi farklı uzunluklarda olabilir.
- İki giriş dizesinden biri, isteğe bağlı ön / arka boşluklar dışında olduğu gibi kalmalıdır.
- Dilleriniz ASCII dışında hiçbir şeyi desteklemiyorsa, girişin yalnızca yazdırılabilir ASCII karakterleri içereceğini varsayabilirsiniz.
- Giriş ve çıkış formatları esnektir. Üç ayrı Dizeniz, bir String dizisi, yeni satırlı tek bir String, 2D karakter dizisi vb. Olabilir.
- Bunun yerine başka bir şey kullanmanıza izin verilir
ARM
, ancak ne kullandığınızı belirtin (yani123
veyaabc.
, vs.) - Aynı miktarda değişiklik (
ARM
) ile birden fazla geçerli çıktı mümkünse , olası çıktılardan birini veya tümünü çıktılamayı seçebilirsiniz. Önde gelen ve arkadaki boşluklar isteğe bağlıdır:
A B CDEF AFBECD A A RR
veya
"A B CDEF\nAFBECD\n A A RR" ^ Note there are no spaces here
Genel kurallar:
- Bu kod golf , bayt en kısa cevap kazanır.
Kod golf dillerinin, kod yazmayan dillerle yanıt göndermenizi engellemesine izin vermeyin. 'Herhangi bir' programlama dili için olabildiğince kısa bir cevap bulmaya çalışın. - Cevabınız için standart kurallar geçerlidir , bu nedenle STDIN / STDOUT, fonksiyon / yöntemi uygun parametrelerle, tam programları kullanmanıza izin verilir. Çağrınız.
- Varsayılan Loopholes yasaktır.
- Mümkünse, lütfen kodunuz için test içeren bir bağlantı ekleyin.
- Ayrıca, gerekirse bir açıklama ekleyin.
Test senaryoları:
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