Primenary ( binary-prime ) 문자열은 이진 그리드로 작성 될 때 모든 행과 열에 총계가있는 문자열입니다.
꽤 모호한 설명이므로 예제를 사용하여 설명해 보겠습니다.
이 예제에서는 다음 문자열을 사용합니다 bunny
.
먼저 각 문자의 ASCII 코드 포인트와 이진 표현을 찾으십시오.
Char | ASCII | Binary
b 98 1100010
u 117 1110101
n 110 1101110
n 110 1101110
y 121 1111001
이진 값을 위에서 아래로 가져 와서 그리드로 배열하십시오 (필요한 경우 앞에 0을 추가).
1 1 0 0 0 1 0
1 1 1 0 1 0 1
1 1 0 1 1 1 0
1 1 0 1 1 1 0
1 1 1 1 0 0 1
그런 다음 1
각 행과 열의 s 수를 계산하십시오 .
1 1 0 0 0 1 0 > 3
1 1 1 0 1 0 1 > 5
1 1 0 1 1 1 0 > 5
1 1 0 1 1 1 0 > 5
1 1 1 1 0 0 1 > 5
v v v v v v v
5 5 2 3 3 3 2
모든 단일 합계가 소수 (예 : 여기) 인 경우에만 문자열이 유효한 2 진 프라임입니다.
도전
당신의 임무는 문자열이 주어지면 truthy
문자열이 기본이거나 falsy
그렇지 않으면 반환 / 출력하는 함수 또는 프로그램을 만드는 것 입니다.
규칙 / 세부 사항
- 문자열의 문자는 항상 ASCII 범위
33-126
(포함)에 있다고 가정 할 수 있습니다 . - 문자열은 비워 둘 수 없습니다.
- 기본 문자열은 소수를 가질 필요 가 없습니다. 예를 들어
W1n*
4 개의 문자가 있지만 유효합니다. - 이것은 code-golf 이므로 가장 짧은 답변 (바이트)이 이기지 만 모든 제출을 환영합니다.
- 표준 허점은 금지되어 있습니다.
테스트 사례
'husband' -> True
'HOTJava' -> True
'COmPaTIBILE' -> True
'AuT0HACk' -> True
'PPCW' -> False
'code-golf' -> False
'C++' -> False
'/kD' -> False
'HI' -> False
'A' -> False
repl.it 에는 작동하지만 믿을 수 없을 정도로 장황한 Python 예제가 있으므로 솔루션을 테스트 할 수 있습니다.
False
. 맞습니까?
0
및 1
주요하지 않고, 지정된 범위만을 문자를 포함한 모든 1-2 문자 입력 문자열이 적어도 하나 포함하도록 보장 0
또는 1
수직 합으로서. 테스트 케이스로 1 및 2 개의 문자열을 추가해야합니다.
false
합니다. 2 개의 문자 입력은 사용할 수 있지만 사용중인 ASCII 범위에는 해당되지 않으므로이 시나리오에서는 맞습니다.
husband
유효 했는지 어떻게 알 수 있습니까 ? 아니면 그들 중 하나? 그래도 큰 문제입니다!