単純な部分:印刷可能なASCII文字(スペース-チルダ)のみを含む入力文字列が与えられた場合、各文字の出現回数をカウントし、便利な形式で結果を返します。文字列の結果はa%hda7a
次のようになりますa:3, %:1, h:1, 7:1, d:1
。並べ替えは不要で、区切り文字と形式はオプションですが、どの数字がどの文字に対応するかを簡単に理解する必要があります。入力文字列にa:3, b:0, c:0, d:1, ...
ない文字は使用しないでください(OKではありません)。
本当の課題:
コード内のすべての文字を8ビットの2進数(UTF-16などを使用している場合は16ビット)に変換し、で始まるすべての文字を列挙し0
ます。
すべての文字(i
列挙子)に対して、i%7
-bit 1 はでなければなりません1
。ビットは右から番号が付けられています。他のすべてのビットは、何でも構いません。
次のコードを例として使用してみましょう。
[f]-xif)#f
これをバイナリに変換すると、以下の配列が得られます。表す最初の番号は([
持っている1
1がOKであるように、0番目の位置に。表す第2の数は(f
持っている1
ので、1がOKがあまりにもあることを、第1 'の位置に。このように続けて、あなたが表示されます上記のコードが有効であること。
C 76543210ビット番号 --------- ---------- [0101101 1 0-OK f 011001 1 0 1-OK ] 01011 1 01 2-OK -0010 1 101 3-OK x 011 1 1000 4-OK i 01 1 01001 5-OK f 0 1 100110 6-OK )0010100 1 0-OK #001000 1 1 1-OK f 01100 1 10 2-OK
コードを]f[-xif)#f
次のように変更すると、シーケンスの次の開始が取得されます。
C 76543210 Bit number
- -------- ----------
] 01011101 0 <- OK
f 01100110 1 <- OK
[ 01011011 2 <- Not OK
- 00101101 3 <- OK
ご覧のとおり、3番目の文字[
は1
2番目の位置(ゼロインデックス)にないため、このコードは無効です。
テストケース:
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