이 과제에서는 줄 바꿈으로 구분 된 두 개의 문자열 인 s1 (첫 번째 줄)과 s2 (두 번째 줄)를 입력 (STDIN 또는 가장 가까운)으로 사용하는 프로그램을 작성합니다. s1의 길이가 항상 30보다 작고 s2의 길이보다 크다고 가정 할 수 있습니다. 그런 다음 프로그램은 s1에서 s2까지의 거리에서 각 단계를 출력해야합니다.
레벤 슈타인 거리의 각 단계가 의미하는 바를 명확히하기 위해 프로그램은 n 개의 문자열을 인쇄합니다. 여기서 n은 s1과 s2 사이의 레벤 슈타인 거리이며, 인접한 두 스트링 사이의 레벤 슈타인 거리는 항상 1입니다. 순서는 중요하지 않습니다. 출력은 개행으로 분리되어야하며 s1, 중간 및 s2 만 포함해야합니다. 이 프로그램은 최신 컴퓨터에서 1 분 안에 실행되어야합니다.
예 :
입력:
Programming
Codegolf
산출:
rogramming
Cogramming
Coramming
Coamming
Codmming
Codeming
Codeging
Codegong
Codegolg
Codegolf
입력:
Questions
Answers
산출:
uestions
Aestions
Anstions
Ansions
Answons
Answens
Answers
입력:
Offline
Online
산출:
Ofline
Online
입력:
Saturday
Sunday
산출:
Sturday
Surday
Sunday
여기 은 거리와 단계를 인쇄하는 Python 스크립트에 대한 링크입니다.
추가 규칙 :
- 인터넷을 사용하지 않음
- 표준 허점 적용
이것은 코드 골프이므로 코드를 짧게 유지하십시오. 최단 코드 승리!
적절한 시간 내에 답변을 실행해야합니까?
—
KSab
야영 자
—
-Ampere
"STDIN에서 입력을 받거나 가장 가깝습니다"는 얼마나 엄격합니까? 함수 인수를 통해 입력을받는 함수를 작성할 수 있습니까? 현재 받아 들여지는 대답은 그렇게합니다.
—
nimi
s1(newline)s2
했지만 질문을 다시 살펴본 결과 프로그램이 입력 된 2 개의 문자열 길이를 기반으로 s1과 s2를 선택하려고했는지 궁금합니다. 어느 쪽이든,이 점을 명확하게 설명 하시겠습니까? 즉, 입력이 s1 다음에 s2라고 가정합니까, 아니면 두 입력의 길이에 따라 s1과 s2를 선택합니까?