간단한 부분 : 인쇄 가능한 ASCII 문자 (공백-물결표) 만 포함하는 입력 문자열이 주어지면 각 문자의 발생 횟수를 세고 편리한 형식으로 결과를 반환하십시오. 문자열의 결과는 a%hda7a
다음과 같아야합니다 a:3, %:1, h:1, 7:1, d:1
. 정렬은 불필요하며 구분 기호 및 형식은 선택 사항이지만 어떤 숫자가 어떤 문자에 해당하는지 쉽게 이해해야합니다. 입력 문자열에없는 문자를 포함해서는 안됩니다 ( a:3, b:0, c:0, d:1, ...
OK가 아님).
진짜 도전 :
코드의 모든 문자를 8 비트 이진수 (또는 UTF-16 또는 이와 유사한 형식을 사용하는 경우 16 비트)로 변환하고에서 시작하는 모든 문자를 열거하십시오 0
.
모든 문자 ( i
열거 자)에 대해 i%7
-bit 1 은이어야 합니다 1
. 비트는 오른쪽부터 번호가 매겨집니다. 다른 모든 비트는 원하는대로 될 수 있습니다.
다음 코드를 예로 들어 보겠습니다.
[f]-xif)#f
이것을 이진수로 변환하면 아래 배열을 얻습니다. 첫 번째 숫자 (표시 [
는 0 번째 1
위치에 있으므로 하나는 정상 임) 두 번째 숫자 (표시 f
는 1 번째 1
위치에 있고 따라서 하나도 OK 임) 계속 진행하면 다음과 같이 표시됩니다 위의 코드가 유효하다는 것을
C 76543210 비트 번호 -------- ---------- [0101101 10 -OK 011001 F 1 0 1 - OK ] 01011 1 01 2-확인 - 0010 1 101 3 - OK x 011 1 1000 4-확인 I 01 1 01001 5 - OK F 0 1 100110 6 - OK ) 0,010,100 1 - 0 OK # 001000 11 1-확인 f 01100 1 10 2-양호
코드를 ]f[-xif)#f
다음과 같이 변경하면 다음과 같은 시퀀스가 시작됩니다.
C 76543210 Bit number
- -------- ----------
] 01011101 0 <- OK
f 01100110 1 <- OK
[ 01011011 2 <- Not OK
- 00101101 3 <- OK
보시다시피, 세 번째 문자 [
는 1
두 번째 위치에 0이 아닌 인덱스가 없으므로이 코드는 유효하지 않습니다.
테스트 사례 :
Input:
This is a string containing some symbols: ".#!".#&/#
Output:
! " # & / : T a b c e g h i l m n o r s t y .
7 1 2 3 1 1 1 1 2 1 1 1 2 1 5 1 2 4 3 1 6 2 1 2
합리적인 출력 형식은 괜찮습니다 (가장 편리한 방법). 예를 들어 다음을 가질 수 있습니다. :7, !:1, ":2, #:3, &:1, /:1, T:1, a:2 ...
또는 [ ,7][!,1][",2][#,3][&,1]...
. 출력은 표준 방식으로 수행됩니다 (기능에서 복귀, STDOUT 등으로 인쇄).
1i
계수 7
.
00001010
입니다. 유용 할 수도 있습니다! :)
n%7
자리 에서 사용할 수있는 문자가 있습니다. pastie.org/pastes/10985263/text