소개
파일 이름은 격렬 간단한에 이르기까지 일을 변화 할 수 있습니다 blah.txt
로 303549020150514101638190-MSP0.txt
. 전자는 일반적으로 인간이 생성하고 후자는 종종 기계 생성입니다. 파일이 "인간 친화적"으로 간주 될 수 있는지에 대한 교육 된 추측을하는 간단한 기능을 갖는 것이 좋지 않습니까?
이후 삭제 된 Eduard Florinescu의 게시물에서 영감을 받았습니다. 그의 아이디어는 좋았지 만 약간의 육체가 필요했습니다.
도전
문자열을 취할 수있는 선택한 언어로 프로그램이나 함수를 작성하고이 과제에 정의 된대로 "인간 친화적"으로 간주되는지 결정하십시오.
추가 세부 사항 및 규칙은 다음과 같습니다.
- 입력은 95 개의 인쇄 가능한 ASCII 문자로 구성된 문자열입니다.
- "인간 친화적"은 다음과 같이 정의됩니다.
- 고려 사항에서 확장을 제외하십시오. 확장은 마지막 기간으로 정의되고 일련의 영숫자 문자 (1 ~ 6)입니다.
- 길이를 기준으로 문자열의 절반을 넘지 않아야 (확장자 제외) 다음과 같이 정의 된 문자 그룹 (결합)으로 구성 될 수 있습니다.
- 행에서 8보다 긴 10 진수 문자.
- 16 행 이상의 16 진 문자 (대문자 또는 소문자) (문자와 숫자로 구성되고 문자의 3 분의 1 이상은 숫자 임)
%+=
12 행 이상의 Base64 문자 ( 특수 문자로 사용) (문자와 숫자로 구성되고 대소 문자를 혼합해야하며 문자의 3 분의 1 이상이 대문자 여야 함)
- 위의 그룹 중 하나라도 정의에서 겹치는 경우 (예 : base64로 한정되지만 행에 8 자리 숫자가있는 그룹) 제외 할 가장 긴 그룹을 선택하십시오.
- 문자열이 "인간 친화적"으로 간주되는지 여부에 따라 출력은 진실하거나 허위 값이어야합니다.
- 유효한 입력 만 사용한다고 가정하십시오. 오류 처리에 대해 걱정하지 마십시오.
우승자는 가장 짧은 프로그램 / 기능에 의해 결정됩니다. 최소 7 일 또는 제출이 충분한 지 여부에 따라 선정됩니다. 동점 일 경우, 앞서 온 대답이 이깁니다.
예
다음은 코드에서 처리 할 수있는 입력 및 출력의 몇 가지 예입니다.
"results_for__michael_greer.txt.zip" => true
"Georg Feuerstein - Connecting the Dots.pdf" => true
"M People - Search for the Hero-ntuqTuc6HxM.mp4" => true
"index.html?v=QTR4WGVTUzFsV3d8NHxvcmlnaW5hbHx8MTExMTAxBHxodHRwOi8vLCwsLHRyLDcsMA%3D%3D.html" => false
"ol2DCE0SIyQC(173).pdf" => false
"d41d8cd98f00b204e9800998ecf8427e.md5" => false
"12792331_807918856008495_7076645197310150318_o.jpg" => false