이것은 내의 후속 질문 Puzzling.SE 질문 : 함수가 있다면 내가 물었다 F 그래서, 부울 문자열로 부울 문자열을 매핑 F (F (B)) = (b)는 반대로 모든 입력 문자열 B . ( 역순으로 , 나는 비트 순서를 반대로하는 함수를 의미합니다.)
위의 링크에는 위의 f ''라는 증거가 포함 된 긍정적 인 답변이 포함되어 있지만 살펴보기 전에 스스로 질문을 숙고하고 싶을 수도 있습니다.
그러한 함수 f 를 가능한 한 적은 바이트로 구현하십시오.
STDIN에서 입력을 읽거나 함수 인수를 취할 수 있습니다. 결과 문자열을 STDOUT에 쓰거나 리턴하십시오.
어느 쪽이든, 두 개의 다른 바이트 또는 선택한 문자 (예 :
0및1, 및\x00및\x01)의 실제 문자열을 사용 하거나 진실 / 거짓 값 의 배열 / 목록으로 작업 할 수 있습니다 . 그러나 두 가지 값을 선택하고 그 값을 고수하십시오.f 의 단일 응용 프로그램 결과는 이진 문자열 자체 여야합니다
b -> if b starts with 'x' then reverse(b[1:]) else 'x' + b.귀하의 기능은 총체적 이어야합니다 . 특히, 입력은 빈 문자열이거나 1 비트 길이 일 수 있습니다. 문자열 길이의 상한은 없습니다.
또한 순수 해야합니다 : 함수 호출간에 전역 상태를 유지하지 마십시오. 입력 문자열은 출력 문자열을 완전히 결정해야합니다.