Буквенно-цифровые символы имеют ASCII-значения:
0-9 -> 48-57
A-Z -> 65-90
a-z -> 97-122
Ваша задача - взять целое число в качестве входных данных и вывести, сколько символов можно сделать, используя последовательные цифры этого числа. Коды символов могут перекрываться. 666
должно привести 2
, так как у вас есть 66
дважды.
Тестовые случаи:
Input: 5698
Possible characters: '8' (56), 'E' (69), 'b' (98)
Output: 3
Input: 564693
Possible characters: '8' (56), 'E' (69)
Output: 2
Input: 530923864209124521
Possible characters: '5' (53), 'V' (86), '4' (52)
Output: 3
Input: 1111111
Possible characters: 'ooooo' (5*111)
Output: 5
Input: 5115643141276343
Possible characters: '3' (51), '8' (56), 'L' (76), 's' (115)
Output: 4
Input: 56789
Possible characters: '8' (56), 'C' (67), 'N' (78), 'Y' (89)
Output: 4
Input: 94
Possible characters: ''
Output: 0
Input: 1
Output: 0
Форматы ввода и вывода являются необязательными (да, вы можете взять целое число в виде строки).
ŒžKÇÃg
не работает?1111111
тест-кейс.Ã
, это имеет гораздо больше смысла теперь, когда я прочитал, что он делает, дерьмо.Брахилог , 22 байта
Попробуйте онлайн!
объяснение
источник
T
вместе?MATL ,
1713 байтПопробуйте онлайн! Или проверьте все тестовые случаи .
объяснение
источник
Java 7,
204197195 байтОбъяснение:
Тестовый код:
Попробуй это здесь.
источник
r
). Тем не менее, я смог сыграть в гольф 7 байтов, поместив все остальное внутри цикла, в одну тройку. Я посмотрю, смогу ли я сделать ваше второе предложение позже, возможно. Мой обеденный перерыв снова закончился, поэтому мне придется вернуться к работе. Буду иметь в виду.JavaScript (ES6),
7170 байтКонтрольные примеры
Показать фрагмент кода
источник
Perl 5 , 47 байт
46 байтов кода +
-p
флаг.Попробуйте онлайн!
Я не мог найти более короткий способ написать это
48..57,65..90,97..122
:map{ord}0..9,a..z,A..Z
(получение значения ascii символов) на один байт длиннее. И выполнениеfor$c(0..122){$\+=chr($c)=~/\pl|\d/ for/(?=$c)/g}}{
(поиск всех чисел, но сохранение только тех, чьи числа соответствуют значению ascii letters (\pl
) или digits (\d
)) будет на 5 байт длиннее (обратите внимание, что\pl|\d
его нельзя заменить, так\w
как последнее также включает подчеркивания)) ,Предыдущий подход (49 байт):
источник
PHP, 68 байт
Онлайн версия
источник
JavaScript (ES),
165161156154153 байтаДа, RegEx определенно не был подходящим инструментом для работы здесь!
Попытайся
источник
Сетчатка , 52 байта
Попробуйте онлайн! (включает тестовый набор)
источник
Python 2 ,
746462 байтаПопробуйте онлайн!
источник
Haskell,
161157138129126 байтовИнтересно, есть ли лучший способ удалить дубликаты списка, чем импортировать Data.List для nub?
источник
Data.Lists
вместоData.List
, вы можете использовать:y<-tail$powerslice x
.Data.Lists
. Это даже упоминается в советах по игре в гольф для Хаскелла - пока никто не жаловался.or $ f <$> list
этоany f list
:any(elem$read y)[...]
.Pyth,
191714 байтовберет строку
-3 байта благодаря @LeakyNun
Попытайся!
объяснение
источник
idT
, вы можете использоватьsd
.l@jGUTmr0Csd.:
может быть короче (не уверен, что это работает).Желе , 8 байт
Ввод представляет собой массив цифр.
Попробуйте онлайн!
Как это работает
источник
Рубин, 50 байтов
Читает со стандартного ввода; требует, чтобы интерпретатор Ruby вызывался с
-n
параметром (неявныйwhile gets
цикл).Может быть уменьшен до 43 байт, если ему разрешено совпадать с подчеркиванием.
источник
111
, который должен вернуться,1
но вы возвращаете0
.Japt , 24 байта
Попробуйте онлайн!
Альтернативная 27-байтовая версия:
Попробуйте онлайн!
источник