만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

데이터 전송

시간 제한2초메모리 제한1024 MB

요약
두 이진 문자열 s와 t가 같거나 인접한 두 비트를 한 번 바꾼 결과인지 판별합니다.
난이도

쉬움10점 중 2점

유형
문자열, 구현
정답자
아직 제출이 없습니다

문제

데이터는 송신기에서 수신기로 통신 채널을 거쳐 비트열 형태로 전달된다. 채널은 전송 중에 비트열을 왜곡할 수 있으므로, 수신기가 받은 비트열 tt는 송신기가 보낸 비트열 ss와 다를 수 있다. 왜곡 유형 중 하나는 인접한 두 비트를 맞바꾸는 것이다. 이 경우 ss와 tt는 인접한 두 위치 ii와 i+1i+1에서만 정확히 다르며, si=ti+1s_i = t_{i+1}이고 si+1=tis_{i+1} = t_i이다. ii와 i+1i+1을 제외한 모든 jj에 대해서는 sj=tjs_j = t_j이다.

당신은 정보 전송을 연구하는 연구자이다. 중요한 정부 통신 채널을 위한 부호화 방식을 설계하고 있으며, 이 부호는 인접 비트 맞바꿈 한 번을 정정할 수 있어야 한다. 채널의 신뢰도를 평가하기 위해 다음과 같이 시험한다. 비트열 s1,s2,…,sns_1, s_2, \ldots, s_n을 여러 개 보내고, 수신기가 받은 t1,t2,…,tnt_1, t_2, \ldots, t_n을 저장한 뒤 보낸 것과 비교한다. 왜곡 없이 도착했거나 인접 비트 맞바꿈이 한 번만 일어난 비트열의 비율로 채널의 신뢰도를 판단한다.

비트열이 길어서 손으로 비교하면 시간이 너무 많이 든다. 두 비트열 ss와 tt가 주어졌을 때, 인접한 기호의 맞바꿈을 최대 한 번 수행하여 ss로부터 tt를 얻을 수 있는지 판별하는 프로그램을 작성하라.

입력

첫 번째 줄에는 비트열 ss가, 두 번째 줄에는 비트열 tt가 주어진다. 두 비트열은 비어 있지 않으며, 0과 1로만 이루어지고, 길이는 각각 100000 이하이다.

출력

위의 방식으로 ss로부터 tt를 얻을 수 있으면 YES를, 그렇지 않으면 NO를 출력한다.

예제3

  1. 예제 1

    입력
    0001010
    0010010
    
    예상 출력
    YES
    
  2. 예제 2

    입력
    0001010
    0010101
    
    예상 출력
    NO
    
  3. 예제 3

    입력
    0001010
    0001010
    
    예상 출력
    YES