Biorąc pod uwagę liczbę nieujemną n
, posortuj cyfry n
według ich pierwszego wystąpienia w pi .
Dane wejściowe mogą być pobierane za pomocą argumentu funkcji cli lub STDIN i jako ciąg znaków, char [] lub liczba całkowita. Możesz wyprowadzać dane poprzez wartość zwracaną, status wyjścia lub STDOUT.
Odpowiedzi:
Pyth,
86 bajtówWypróbuj tutaj.
-1 dzięki Leaky Nun : Dane wejściowe zapewnią,
0
jeśli będą kiedykolwiek potrzebne.Trywialne -1 dzięki Jakube : Backtick nie jest potrzebny (ach, jak mi tego brakowało, JAK?!?).
źródło
0
koniec nie potrzebujesz . Jeśli wejście ma a0
,0
zostanie ono dostarczone przez wejście; jeśli wejście nie ma0
, to nie będzie miało znaczenia.ox+.n0
Python 3 ,
4039 bajtów1 bajt dzięki Jonathan Allan.
Wypróbuj online!
źródło
3
, ponieważ find zwróci się,-1
gdy element nie zostanie znaleziony.05AB1E ,
1097 bajtówZaoszczędzono 1 bajt dzięki Dziurawej Zakonnicy , która zauważyła, że odfiltrowywanie duplikatów nie jest konieczne.
Zaoszczędzono 2 bajty dzięki Adnan .
Wypróbuj online!
Wyjaśnienie
źródło
13žsRvy†J
na 9 bajtówžq
zamiast13žs
?Galareta , 10 bajtów
Wypróbuj online!
Pobiera dane wejściowe jako ciąg cyfr.
-3 bajty dzięki produktom @ETH
Wyjaśnienie
źródło
3145926870
może być reprezentowany jako 4-cyfrowy ciąg base-250 (co oznacza, że zajmuje 6 bajtów zamiast 10), ale nie jestem pewien, jak go skompresować.“ṀSṪw’
da ci3145926870
.Japt ,
109 bajtów8 bajtów kodu, +1 dla
-P
flagi.Wypróbuj online! Pobiera dane wejściowe jako ciąg.
Wyjaśnienie
źródło
JavaScript (ES6), 54 bajty
Używa ciągów dla I / O.
źródło
Galaretka ,
87 bajtów-1 bajt dzięki Dennisowi (użyj dowolnego istniejącego
0
na wejściu, sprytne).Wypróbuj online!
W jaki sposób?
źródło
3820009
(sqrt z14592468760081
) wciąż zawiera3
cyfry w bazie250
.Ṿ
W swoim wyjaśnieniem jest niesłuszna.CJam ,
1512108 bajtówWypróbuj online!
-3: Użyj ciągu opartego na
P
zmiennej pi zamiast literału.-2: Zdecydowałem, że wcale nie muszę jednoznacznie identyfikować, ponieważ znalezienie indeksu i tak zajmuje pierwsze wystąpienie. -2: Dzięki jimmy23013 za ciekawe podejście przy użyciu x mod 65536.
Wyjaśnienie:
źródło
ci
nawet konwertowałby z powrotem na liczbę całkowitą.PHP, 71 bajtów
Rozwiązanie wyrażenia regularnego jest krótsze
lub
Wersje online
PHP, 78 bajtów
PHP, 112 bajtów
Wersja online
źródło
C,
10397 bajtówWypróbuj online
źródło
char
wchar*p
ichar*t
Rubinowy, 50 bajtów
źródło
MATL , 14 bajtów
Wypróbuj online!
Wyjaśnienie na przykładzie
Symbol
;
jest używany jako separator wierszy w macierzach. Podobnie[1 2 3]
jak wektor rzędowy, wektor[1; 2; 3]
kolumnowy i[1 2; 3 4]
macierz kwadratowa. Te ostatnie można również przedstawić, dla jasności, jakoRozważ dane wejściowe
2325
jako przykład.źródło
C (gcc) , 78 bajtów
Wypróbuj online!
źródło
C # Interactive,
3736 bajtówActually you have to execute this in the C# interactive for proper results, but I guess this is what you meant with exit status. The variable i actually is the input variable (it can be for example a string), so it's basically the method parameter.
I think the code itself is pretty straight forward.
źródło
3
?i
gdzieś jest, aby można go było traktować jako dane wejściowe. Również jeśli mówisz C #, musisz uwzględnićusing System.Linq;
w liczbie bajtów. Jeśli jednak jest to Interactive, należy określić język jako C # Interactive, a nie tylko C #.05AB1E ,
56 bajtów (niekonkurencyjny)Musiałem zdać sobie sprawę, że
0
nie występuje w standardowej stałej stałej pi.Wypróbuj online!
źródło
Σ
is newer than the challenge.PHP,
6665 bytesSaved 1 byte thanks to Titus.
źródło
Java 7, 110 bytes
Explanation:
Test code:
Try it here.
Output:
źródło
Clojure, 38 bytes
Input in string, returns a sequence of characters.
zipmap
creates a "dictionary" object, which can be used in a function context as well.If input digits were guaranteed to be unique then you could simply do
#(filter(set %)"3145926870")
.źródło
PHP,
6968Still beaten by preg_filter but I thought it was quite nice itself. Maybe someone can golf off some bytes.
źródło
$c!=$d?:print$d
as alternative for$c==$d&&print$d
I only see in the moment_3145926870
instead of `"3145926870" save 1 Bytefor(;(~$d=$argn[$j++])?:~$c=_3145926870[++$i+$j=0];$c!=$d?:print$d);
is also a working alternativePerl 6, 34 bytes
Try it
źródło
k, 19 bytes
Explanation:
źródło