입력:
줄 바꿈 또는 공백이없는 두 개의 문자열
산출:
두 개의 입력 문자열은 별도의 줄 에 있으며 두 문자열 중 하나에 필요한 공간이있는 경우 † 입니다. 그리고 문자가 세 번째 행은 A
, R
, M
및 대표 추가 , 삭제 , 수정 및 변경 .
† 상단 또는 하단 입력 문자열 에 공백을 추가 합니다 (필요한 경우). 이 도전의 목표 ARM
는 레 벤슈 테인 거리 (Levenshtein distance) 라고도하는 가능한 한 적은 양의 변화 ( ) 로 출력하는 것 입니다.
예:
입력 문자열이 ABCDEF
and 라고 가정 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 문자 만 포함되어 있다고 가정 할 수 있습니다.
- 입력 및 출력 형식이 유연합니다. 문자열 배열, 줄 바꾸기가 포함 된 단일 문자열, 2D 문자 배열 등 세 개의 개별 문자열을 가질 수 있습니다.
- 대신에 다른 것을 사용할 수 있지만 사용한 것을
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
일반 규칙:
- 이것은 code-golf 이므로 바이트 단위의 최단 답변이 이깁니다.
코드 골프 언어가 코드 골프 언어 이외의 언어로 답변을 게시하지 못하게하지 마십시오. '모든'프로그래밍 언어에 대한 가능한 한 짧은 대답을 생각해보십시오. - 표준 규칙이 답변에 적용 되므로 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