두 가지 입력을받는 프로그램이나 함수를 작성하십시오.
- 문자 메시지
- 이 Github 파일에 나타나는 영어 사전 (약 60000 단어 포함)
메시지의 철자 오류 수를 출력합니다 (정의 및 테스트 사례는 아래 참조).
프로그램에서 찾을 수있는 미리 정의 된 파일, 코드의 하드 코딩 된 데이터 또는 기타 합리적인 방법으로 사전을 함수의 매개 변수로받을 수 있습니다.
코드 자체는 문자 메시지처럼 보이고 철자 오류가 최소화됩니다. 따라서 코드 자체를 입력으로 공급하여 코드 의 점수 를 계산합니다 .
승자는 가장 낮은 점수를받은 코드입니다 (최소 가능한 점수는 0). 점수가 같은 답변이 여러 개인 경우 코드 크기 (문자)로 우승자가 결정됩니다. 두 개의 답변이 여전히 연결되어 있으면 승자가 더 빠른 답변입니다.
필요한 경우 입력 메시지가 일반 방식으로 인코딩 된 줄 바꿈 (1 바이트 "10"또는 2 바이트 "13 10")이 있고 ASCII가 아닌 ASCII (바이트 32 ... 126)로 가정 할 수 있습니다. 그러나 코드에 비 ASCII 문자가있는 경우 비 ASCII 입력도 지원해야하므로 자체 점수를 계산할 수 있습니다.
문자는 다음 클래스로 세분됩니다.
- 문자 a ... z 및 A ... Z
- 공백 (여기서는 공백 문자 또는 개행 문자로 정의 됨)
- 구두
.
,
;
:
!
?
- 문장 끝
.
!
?
- 문장 끝
- 쓰레기 (나머지)
단어 (즉, 둘 선행되지도 문자가 뒤에) 최대입니다 문자의 순서로 정의된다.
문장은 문장 끝없는 문자의 최대 순서로 정의된다.
맞춤법 규칙을 위반 하는 문자는 맞춤법 오류입니다 .
- 문자는 사전 단어에 속해야합니다. 즉, 사전에 나타나지 않는 길이가 N 인 각 단어는 N 철자 오류로 계산됩니다.
- 첫 공백 문자를 무시하고 문장의 첫 문자는 대문자 여야합니다.
- 이전 규칙에서 지정한 것을 제외한 모든 글자는 소문자 여야합니다
- 문장 부호 문자는 문자 나 쓰레기 후에 만 허용됩니다.
- 개행 문자는 문장 끝 문자 뒤에 만 허용됩니다.
- 메시지의 시작과 공백 문자 뒤에 공백 문자를 사용할 수 없습니다
- 가비지가 없어야합니다 (즉, 각 가비지 문자 수가 철자 오류 임)
또한 마지막 문장은 비어 있거나 정확히 하나의 줄 바꿈 문자로 구성되어야합니다 (즉, 메시지는 문장 끝 문자와 선택적인 줄 바꿈으로 끝나야합니다-규칙 8이라고합시다).
테스트 사례 (각 문자 아래에 위배되는 규칙 =>
이 있으며 필수 답변 이후 는 다음과 같습니다) :
Here is my 1st test case!!
711 4 => 4
main(){puts("Hello World!");}
2 777 883 3 77 78 => 12
This message starts with two spaces
66 8 => 3
What ? No apostrophe's??
4 71 4 => 4
Extra whitespace is BAD!
66 661111111111 66 66333 => 21
Several
lines?
Must be used only to separate sentences.
=> 1 (first linebreak is en error: rule 5)
"Come here," he said.
73 7 => 3 (sentence starts with '"', not 'C')