Многие языки программирования написаны с использованием исключительно ASCII для печати, вкладок и новых строк. Эти 97 символов затем сохраняются в 8-битных байтах (которые на самом деле способны содержать 256 различных символов!), Что просто ужасно неэффективно - особенно в игре в код, где каждый байт имеет значение! В этом задании вы сможете уменьшить свой счет, используя базовую конверсию.
Вызов
Ваша программа / функция принимает строку или символьный массив в качестве входных данных, которые затем интерпретируются как число base-97 . Затем он преобразует это число в число 256 и подсчитывает количество символов (т. Е. Байтов), необходимое для представления этого числа. Этот счет будет выходным / возвращаемым значением вашей программы / функции.
Простой пример с использованием base-2 и base-10 (двоичное и десятичное): если входное значение равно 10110
, выходное значение будет равно 2, поскольку 10110 2 = 22 10 (две цифры, необходимые для представления выходного сигнала). Аналогично, 1101 2 становится 13 10 , что также дает выход 2, а 110 2 становится 6 10 , поэтому выход будет 1.
Входная строка может содержать все 95 печатных символов ASCII, а также \n
вкладку новой строки и литерала \t
, которая создает исходный алфавит из 97 символов для базового преобразования. Таким образом, точный алфавит будет (с заменой на \t
и \n
фактической литеральной табуляции и новой строки; обратите внимание на литеральное пространство после новой строки) :
\t\n !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Обратите внимание, что порядок этого алфавита важен: например, base-97 \t
соответствует десятичному 0
и !
соответствует десятичному 3
.
Некоторые тестовые случаи: (вам не нужно обрабатывать пустую строку)
Input Output
'example@domain.com' 15
'All your base are belong to us!' 26
' abcd' 9
'~ abcd' 10
'ABCDEFGHIJK' 9
'zyxwvutsrpq' 10
'{".~"}.~' 7
'\t\t\t\t\t\t\t\t' 1 (with \t a literal tab; the result is 0, which can be represented with 1 byte)
'!\t\t\t\t\t\t\t\t' 7 (with \t a literal tab)
счет
Если ваша запись использует только печатный ASCII, символ новой строки и / или вкладку: Оценка вашей программы будет выводом вашей программы, когда в качестве входных данных будет указан ее собственный исходный код.
Если ваша запись использует какие-либо символы, которые не могут быть напечатаны ASCII, символом новой строки или табуляции: Оценка вашей программы - это просто число байтов, как в code-golf .