Проста частина: Давши рядок введення, що містить лише друковані символи ASCII (пробіл - тильда), підрахуйте кількість входів кожного символу та поверніть результат у будь-якому зручному форматі. Результат для рядка a%hda7a
має бути що - щось на кшталт: a:3, %:1, h:1, 7:1, d:1
. Сортування непотрібне, роздільники та формати необов’язкові, але слід легко зрозуміти, яке число відповідає якому символу. Ви не повинні включати символи, які не входять до рядка введення ( a:3, b:0, c:0, d:1, ...
не в порядку).
Справжній виклик:
Перетворіть кожен символ у своєму коді на 8-бітове двійкове число (або 16-розрядне, якщо ви використовуєте UTF-16 або подібне), і перерахуйте кожен символ, починаючи з 0
.
Для кожного символу ( i
є нумератором) i%7
-біт 1 повинен бути 1
. Біти нумеруються праворуч. Всі інші біти можуть бути будь-якими, що вам захочеться.
Давайте використаємо наступний код як приклад:
[f]-xif)#f
Перетворивши це у бінарне, ми отримаємо масив нижче. Перше число (у представництві [
є 0 1
-е місце, так що одне є ОК. Друге число (яке f
має 1
в першій позиції, так що і одне ОК). Продовжуйте так, і ви побачите що код вище дійсний.
C 76543210 Бітове число - -------- ---------- [0101101 1 0 - Гаразд f 011001 1 0 1 - Гаразд ] 01011 1 01 2 - Гаразд - 0010 1 101 3 - Гаразд x 011 1 1000 4 - ОК i 01 1 01001 5 - Гаразд f 0 1 100110 6 - Гаразд ) 0010100 1 0 - Гаразд # 001000 1 1 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
в 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