이 문제를 해결하려면 diff를 압축해야합니다. diff는 두 문자열의 차이를 나타내는 일부 데이터입니다. 이 문제를 해결하려면 다음을 수행 할 수있는 하나 이상의 프로그램을 제공해야합니다.
- diff를 입력
A
하고B
C
- 입력
A
및C
출력B
- 입력
B
및C
출력A
목표는 diff C
를 가능한 작게 만드는 것입니다 . diff는 문자열, 숫자, 한 방울의 데이터 일 수 있습니다. 우리는 크기 (바이트 수)에 관심이 있습니다.
Github에서 찾을 수 있는 50 가지 테스트 사례 가 있습니다 . 각 테스트 사례는 두 개의 공백으로 구분 된 URL로 구성되며,이 URL은 diff해야하는 2 개의 파일을 가리 킵니다. (이 테스트 사례는 PPCG 회원의 Github 프로필에서 시작되었습니다. 모두 감사합니다!)
위의 세 가지 작업은 모두 전원이 공급되는 컴퓨터 (각 테스트 사례에 대해)에서 실행하는 데 1 분 정도 걸립니다.
당신의 점수는 모든 50 diff의 총 크기 (바이트)와 같으며 낮을수록 좋습니다. 프로그램의 하드 코딩 차이는 허용되지 않습니다 (하드 코딩을 방지하기 위해 테스트 사례를 변경할 권리가 있습니다). 같은 diff를 생성하는 내장 diffutils
은 허용되지 않습니다.
4
diff 란 정확히 무엇입니까?
—
코너 오브라이언
당신이 원하는 것은 정말로. 비공식적으로, 자사의 문자열 사이의 차이를 나타냅니다
—
나단 메릴
A
와B
더 많은 링크 썩음 : 1-베이스 라인 인덱스로 테스트 케이스 쌍 번호 매기기 두 쌍의 테스트 사례 3, 13, 14, 15, 16, 17, 18, 19, 20, 21은 모두 404입니다.이 외에는 다른 모든 사례를 검색 할 수있었습니다.
—
H Walters
이 질문은 대부분 답이 없으며 테스트 사례로 사용했던 많은 이전 링크가 더 이상 작동하지 않기 때문에이 질문을 닫고 있습니다. 질문을 업데이트하고 원하는 경우 다시여십시오.
—
Nathan Merrill
끝난. GIST는 gist.github.com/sethhillbrand/64066935e3f8c0fac75d75edd43c9ef8입니다 . 두 번째 파일은 나머지 40 개의 테스트 사례 쌍의 암호화 된 아카이브입니다.
—
세스