도전
기본 I / O 형식의 두 문자열이 제공되면 다음을 수행하십시오.
참고 :이 문제는 첫 번째 문자열을 "데이터"로, 두 번째 문자열을 "프로그램"이라고합니다.
- 프로그램을 무한 반복되는 무한 문자열로 변경하십시오 (예 :
10
->1010101010...
). 도전은 이것을 "무한 프로그램"이라고 언급 할 것이다 데이터가 비어 있지 않은 동안 무한 프로그램을 반복하면서 다음을 수행하십시오.
ㅏ. 현재 명령이 "0"이면 데이터에서 가장 왼쪽 비트를 삭제하십시오. 데이터가 비어 있으면 "0"은 아무 작업도 수행하지 않습니다.
비. 현재 명령이 "1"이면 데이터의 가장 왼쪽 비트가 1 인 경우 프로그램의 다음 문자를 데이터에 추가하십시오.
씨. 데이터가 지금 비어 있지 않으면 데이터를 출력하십시오.
테스트 사례
데이터는 입력의 왼쪽이고 프로그램은 오른쪽입니다.
100, 0 --> 00, 0
1111, 1 --> 11111, 111111, 1111111, ...
10, 011 --> 0, 0, 0
1110, 011 --> 110, 1101, 11010, 1010...
메모
- 데이터와 프로그램은 0과 1로만 구성됩니다
- 중단되지 않는 데이터 / 프로그램의 경우 프로그램을 중단 할 필요가 없습니다.
- 입력에서 데이터 및 프로그램이 비어 있지 않습니다.
- 여러 개의 후행 및 선행 줄 바꿈이있을 수 있습니다.
- 표준 허점 은 금지되어 있습니다
- 편리한 I / O 형식을 사용할 수 있습니다
와 언제나처럼 코드 골프 , 짧은 코드의 승리 !
100
로 이동합니다 10
. 0
정의는 "데이터에서 가장 왼쪽 비트를 삭제합니다." 가장 왼쪽 비트하지 않을 100
수 1
?