레벤슈타인 거리

면접 대비

시간 제한1초메모리 제한512 MB

요약
알파벳과 문자열 s가 주어질 때, s와의 레벤슈타인 거리가 정확히 1인 알파벳 위의 모든 서로 다른 문자열을 사전순으로 출력한다.
난이도

보통10점 중 5점

유형
문자열, 완전 탐색, 구현, 정렬
정답자
아직 제출이 없습니다

문제

두 문자열의 레벤슈타인 거리는 한 문자열을 다른 문자열로 바꾸는 데 필요한 최소 횟수의 한 글자 단위 연산이다. 연산은 다음과 같다.

  • 문자열의 아무 위치에나 글자를 추가한다.
  • 문자열의 아무 위치에서나 글자를 제거한다.
  • 문자열의 어떤 글자든 다른 글자로 바꾼다.

주어진 알파벳과 질의 문자열이 있을 때, 그 알파벳으로 만들 수 있는 서로 다른 문자열 중 질의 문자열과 레벤슈타인 거리가 1인 것을 모두 찾아 사전순으로 나열하라. 중복은 허용하지 않는다.

질의 문자열 자체는 목록에 포함되지 않는다. 자기 자신과의 레벤슈타인 거리는 1이 아니라 0이다.

입력

입력은 정확히 두 줄이다. 첫째 줄에는 공백 없이 사전순으로 나열된 서로 다른 소문자들이 주어진다. 이것이 사용할 알파벳이다.

둘째 줄에는 문자열 s (2 ≤ |s| ≤ 100)가 주어진다. s는 주어진 알파벳의 소문자로만 이루어져 있다. 이것이 질의 문자열이다.

출력

질의 문자열 ss와 레벤슈타인 거리가 1인 모든 문자열을 사전순으로 출력하라. 한 줄에 하나씩 출력하며, 중복은 허용하지 않는다.

예제1

  1. 예제 1

    입력
    eg
    egg
    
    예상 출력
    eeg
    eegg
    eg
    ege
    egeg
    egge
    eggg
    gegg
    gg
    ggg