Znaki alfanumeryczne mają wartości ASCII:
0-9 -> 48-57
A-Z -> 65-90
a-z -> 97-122
Wyzwanie polega na przyjęciu liczby całkowitej jako wartości wejściowej i wyświetleniu, ile znaków można wprowadzić przy użyciu kolejnych cyfr tej liczby. Kody znaków mogą się nakładać. 666
powinien skutkować 2
, ponieważ masz 66
dwa razy.
Przypadki testowe:
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
Formaty wejściowe i wyjściowe są opcjonalne (tak, możesz przyjąć liczbę całkowitą jako ciąg).
ŒžKÇÃg
nie działa?1111111
przypadek testowy.Ã
, to ma o wiele większy sens teraz, kiedy czytam, co robi, bzdury.Brachylog , 22 bajty
Wypróbuj online!
Wyjaśnienie
źródło
T
razem?MATL ,
1713 bajtówWypróbuj online! Lub sprawdź wszystkie przypadki testowe .
Wyjaśnienie
źródło
Java 7,
204197195 bajtówWyjaśnienie:
Kod testowy:
Wypróbuj tutaj.
źródło
r
). Byłem jednak w stanie zagrać w golfa 7 bajtów, umieszczając wszystko inne w pętli for, w jednej trójce. Zobaczę, czy może uda mi się zrobić twoją drugą sugestię później. Czas na lunch znów się skończył, więc muszę wracać do pracy. Będę o tym pamiętać.JavaScript (ES6),
7170 bajtówPrzypadki testowe
Pokaż fragment kodu
źródło
Perl 5 , 47 bajtów
46 bajtów kodu +
-p
flaga.Wypróbuj online!
Nie mogłem znaleźć krótszego sposobu na napisanie
48..57,65..90,97..122
:map{ord}0..9,a..z,A..Z
(uzyskanie wartości ascii znaków) jest o jeden bajt dłuższy. A robieniefor$c(0..122){$\+=chr($c)=~/\pl|\d/ for/(?=$c)/g}}{
(szukanie wszystkich liczb, ale zachowanie tylko tych, których liczby odpowiadają wartości ascii liter (\pl
) lub cyfr (\d
)), będzie o 5 bajtów dłuższych (uwaga, że\pl|\d
nie można zastąpić nimi,\w
ponieważ ta ostatnia zawiera również podkreślenia)) .Poprzednie podejście (49 bajtów):
źródło
PHP, 68 bajtów
Wersja online
źródło
JavaScript (ES),
165161156154153 bajtówTak, RegEx zdecydowanie nie był odpowiednim narzędziem do pracy tutaj!
Spróbuj
źródło
Siatkówka , 52 bajty
Wypróbuj online! (obejmuje pakiet testowy)
źródło
Python 2 ,
746462 bajtówWypróbuj online!
źródło
Haskell,
161157138129126 bajtówZastanawiam się, czy istnieje lepszy sposób na usunięcie duplikatów z listy niż importowanie Data.List do nub?
źródło
Data.Lists
zamiastData.List
można użyć:y<-tail$powerslice x
.Data.Lists
. Jest nawet wspomniane w wskazówkach golfowych dla Haskell - jak dotąd nikt nie narzekał.or $ f <$> list
jestany f list
:any(elem$read y)[...]
.Pyth,
191714 bajtówbierze sznurek.
-3 Bajty dzięki @LeakyNun
Spróbuj!
Wyjaśnienie
źródło
idT
możesz użyćsd
.l@jGUTmr0Csd.:
może być krótszy (nie jestem pewien, czy to działa).Galaretka , 8 bajtów
Dane wejściowe to tablica cyfr.
Wypróbuj online!
Jak to działa
źródło
Rubinowy, 50 bajtów
Odczytuje ze standardowego wejścia; wymaga wywołania interpretera Ruby z
-n
opcją (niejawnawhile gets
pętla).Można by zmniejszyć do 43 bajtów, gdyby pozwolono na dopasowanie podkreślników.
źródło
111
, co powinno wrócić,1
ale oddajesz0
.Japt , 24 bajty
Wypróbuj online!
Alternatywna 27-bajtowa wersja:
Wypróbuj online!
źródło