var QUESTION_ID=75979,OVERRIDE_USER=52353;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
Odpowiedzi:
Galaretka ,
532 bajtyDzięki Dennis za oszczędność 2 bajtów. Również dzięki FryAmTheEggman za zaoszczędzenie 1 bajtu. Kod:
Wyjaśnienie:
Wykorzystuje kodowanie Jelly .
Wypróbuj online!
źródło
Python 3.5, 18 bajtów
Działa to, ponieważ
print
domyślnym separatorem jest pojedyncza spacja.źródło
print(*input(),end=' ')
byłby przenośny, ale nie jest zbyt golfowy ...Sześciokąt ,
21131210 bajtówKod:
Zaoszczędzono wiele bajtów dzięki FryAmTheEggman . Kod:
Lub w bardziej czytelnej formie:
Wypróbuj online!
Wyjaśnienie:
Program Hexagony uruchamia się w lewym górnym rogu, natychmiast ustawiając krawędź pamięci na wartość ASCII wynoszącą
P
80, po czym możemy zobaczyć, że wybrana jest następująca ścieżka:Widzimy, że ścieżka jest zrobione:
P,<;.P/0....;*/>
. PoP
, bierzemy bajt danych wejściowych użytkownika. Jeśli to pole jest puste, następująca gałąź (<
) przekieruje nas na północny wschód. Jeśli dane wejściowe nie są puste, gałąź kieruje nas na południowy wschód. Następnie wysyłamy dane wejściowe użytkownika za pomocą;
. Ustawiamy ponownie krawędź pamięci na wartośćP
80. Zero, po którym następuje lustro, jest następnie konkatenowane do naszej liczby, co daje w wyniku liczbę 800. Jest to następnie wyprowadzane za pomocą;
polecenia, ale najpierw jest pobierane modulo 256, co daje 32, co jest spacją. Następnie resetujemy krawędź pamięci za pomocą*
polecenia i wracamy do pętli nad resztą danych wprowadzanych przez użytkownika. Po zakończeniu wprowadzania danych przez użytkownika ścieżka jest kierowana na północny wschód:Zasadniczo chodzi o
@
polecenie, które kończy działanie programu.Korzystanie Timwi „s niesamowite HexagonyColorer do tworzenia diagramów.
źródło
P,<0/*;@.>
P,<<>0;@>*
ma również 10, ale niestety nie sądzę, aby pomogło to w odjęciu kolejnego bajtu.Haskell, 11 bajtów
Przykład użycia:
((:" ")=<<) "Code Golf"
->"C o d e G o l f "
.Przypisz każdy znak
c
do listy dwóch elementów[c, space]
i połącz wszystko w jedną listę.źródło
Siatkówka , 5
Zwróć uwagę na spację na końcu drugiej linii.
$&
jest równoważne z$0
. Dzięki @ mbomb007 za ten link .Wypróbuj online.
źródło
$0
. To to samo, ale bardziej powszechne.JavaScript, 20 bajtów
Proste, po prostu chciałbym, aby Array.join dodał spację na końcu, abym mógł zapisać 3 bajty.
źródło
[...s,``].join` `
być może?[...s,,].join
...join
funkcję zwrotu, jak się spodziewałbym.` `
komentarz.> <> ,
1310 bajtów3 bajty zapisane dzięki @ Sp3000
Wypróbuj tutaj . Kliknij link, a następnie Prześlij , a następnie wpisz dane wejściowe i naciśnij Daj , a na koniec uruchom program za pomocą Start lub Uruchom bez animacji .
Wyjaśnienie
źródło
i:0(?;o 'o
dla 10io 'o
też działa, powodując błąd.'
po prostu owija się wokół, pchając znaki, aż znajdzie inny,'
aby go zamknąć. W tym przypadku otwierające i zamykające'
s mają ten sam znak i większość kodu źródłowego jest wypychana, ale górny znak byłby po prostu spacją, ponieważ został wypchnięty jako ostatni.Java, 132 (System.in) lub 99 (Program argument) bajtów
Czy dziś wieczorem czujesz koszty ogólne?
shooqie wymyślił 6-bajtowy krótszy sposób na zrobienie tego, ale nie ukradnę ich podejścia. Użyłem go jednak z wersjami STDIN i lambda.
28 znaków dla lambda, ale to nie spełnia wymagań programu.
źródło
replaceAll
.Cubix , 10 bajtów
Cubix to dwuwymiarowy język opracowany przez @ETHproductions, w którym polecenia są zawijane na kostce. Wypróbuj online
Mapuje to na sześcian o długości krawędzi 2
Zaczyna się od wejścia
i
. Przepływ jest przekierowywany na północ^
do górnej powierzchni.?
Jeśli wartość jest ujemna, skręć w lewo, aby zakończyć@
, zero przechodzi w przesunięcie w prawow
lub dodatnie skręć w prawo, a następnie odbija w lewo\
. Wyjście znaku ze spacjąoSo
.źródło
Cubix , 9 bajtów
Zobacz, jak działa online!
Cubix to język, w którym instrukcje są odwzorowane na powierzchni sześcianu. Ten program tworzy następującą sieć kostek:
Wskaźnik instrukcji zaczyna się od
i
, który pobiera kolejny kod znakowy z danych wejściowych i wypycha go na stos. Jeśli nie ma już więcej danych do pobrania,?
zmienia adres IP w lewo, tam gdzie uderza/
, i jest odbijany w górę@
, co kończy program.Jeśli jednak pozostanie wejście, wartością będzie kod znakowy. Ponieważ wszystkie 1- znakowe kody są dodatnie,
?
IP skręca w prawo, gdzie owija się wokół kostki, przekazująco
drogę, która wypisuje znak. Następnie uderza,/
co powoduje, że zapętla się z powrotem>So
, co popycha i drukuje przestrzeń. IP prowadzi na zachód, aż wraca doi
, z powrotem do początku głównej pętli.1 Jeśli postać ma bajt zerowy, zignoruje ją
?
i przejdzie dalej, po prostu wyprowadzając pojedynczą spację.Oczywiście, jest tylko tyle wyjaśnienia na piśmie, więc gorąco polecam przejrzenie tego w tłumaczu online . Dostępna jest opcja „prędkości”, która pozwala wyświetlać wykonanie tak wolno lub szybko, jak chcesz.
źródło
@.Uoi?So
Stax , 2 bajty
Krawaty Galaretki!
Wypróbuj na staxlang.xyz!
Wszystko to polega na przepchnięciu
0
stosu i skompresowaniu go ze standardowego wejścia, powtarzając w razie potrzeby 0. W Stax kod 0 w ciągu znaków jest zwykle konwertowany na 32 (spację).Jest to na tyle krótkie, że spakowanie go
ûT
powoduje jedynie zmniejszenie czytelności.źródło
05AB1E, 4 bajty
Wypróbuj online.
Wyjaśnienie
źródło
ðâJ
niekonkurujący.Sðý
CJam ,
54 bajtów1 bajt mniej dzięki @FryAmTheEggman
Wypróbuj online!
Wyjaśnienie
źródło
Java, 92
źródło
Awk, 7 bajtów
(4-znakowy kod + 3-znakowa opcja wiersza poleceń).
Przykładowy przebieg:
(Istnieje rozbieżność co do tego, co powinno być uwzględnione w liczeniu opcji wiersza poleceń. Podałem to, co faktycznie przekazano
awk
interpreterowi: „-”, „F” oraz separator między „F” a parametrem pustego ciągu. Zobacz poniżej Mam na myśli.)źródło
PHP, 39 bajtów
Uruchom go z wiersza poleceń
https://eval.in/541179
źródło
WhoScript 38 bajtów
Działa najlepiej, gdy ciąg jest podawany w wierszu polecenia, ale można go również wykonywać w czasie rzeczywistym po jednym znaku.
Nie golfowany:
źródło
Labirynt , 10 bajtów
To kończy się błędem, ale komunikaty o błędach trafiają do STDERR.
Wypróbuj online!
Wyjaśnienie
Jest to jeden z rzadkich przypadków, w których możliwy jest całkowicie liniowy program. Pętla jest realizowana za pomocą poleceń modyfikacji kodu źródłowego
<
i>
, co działa, ponieważ po każdej iteracji wiemy, że stos jest ponownie pusty.<
cyklicznie przesuwa całą linię o jedną komórkę w lewo, więc otrzymujemy:To zabiera ze sobą wskaźnik instrukcji (IP), więc adres IP znajduje się teraz na prawym końcu kodu i musi przesuwać się w lewo. Następnie
>
robi odwrotną modyfikację, więc przesuwa kod źródłowy z powrotem doTeraz wykonujemy jedną iterację (od prawej do lewej), zanim wszystko zacznie się od nowa:
źródło
Gema , 5 bajtów
Przykładowy przebieg:
źródło
MATL , 7 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
APL, 5 bajtów
Zajmuje to 2 elementy dla każdego znaku w ciągu, z efektem dodania spacji
Aby uczynić go programem, który przyjmuje standardowe wejście, ma tę samą liczbę bajtów:
Wypróbuj tutaj .
źródło
pieprzenie mózgu,
2422 bajtówProsty przykład wykorzystujący najkrótszą znaną liczbę 32 dla spacji.
Wypróbuj online
źródło
,[.>>-[-[-<]>>+<]>-.,]
oszczędza dwa bajty.PHP, 31 bajtów
pobiera dane wejściowe z argumentu wiersza poleceń.
źródło
Threead ,
4516 bajtów niekonkurujących.Pobiera dane wejściowe przez STDIN.
Pierwsza linia / taśma po prostu odczytuje bajty ze STDIN i zapisuje je. Drugi wiersz początkowo przechowuje spację
32c
, a następnie w tym samym czasie, gdy czytany jest następny znak, wypisuje tę spację.Wypróbuj online!
źródło
Python 2,
272524 bajtówKrótszy niż odpowiedź Raffiego ...
-1 dzięki 60919 (FlipTack).
źródło
lambda x:' '.join(x)+' '
jest o 1 bajt krótszy.C, 50 bajtów
Trochę
main()
rekurencji :)Wypróbuj online! - Jeśli używasz tego na swoim komputerze, użyj Ctrl+, Daby zaznaczyć EOF.
źródło
C, 56 bajtów (jako argument programu), 46 bajtów (od standardowego)
Zwykła stara odpowiedź C. Po skompilowaniu program należy wywołać za pomocą łańcucha, ponieważ jest to pierwszy parametr, łańcuch ze spacjami musi być ujęty w cudzysłów. Na przykład w początkowym poście:
Które wydadzą
Rozwiązanie, które odczytuje bezpośrednio ze standardowego wejścia.
Jeden bajt mniej dzięki @FryAmTheEggman
źródło
stdin
zamiast brać je jako argument. Ponadto, tutaj jest strona z kilkoma przydatnymi wskazówkami dla dalszej gry w golfa w C: codegolf.stackexchange.com/q/2203/13877getchar()
jest krótsze. Również nie potrzebujesz dołączania do większości kompilatorów C.R, 36 bajtów
Przykład:
źródło
sep=" "
, więc może być znacznie krótszy: wypróbuj online!Poważnie, 7 bajtów
Wypróbuj online!
Człowieku, to wymagało miejsca końcowego dodając 3 dodatkowe bajty. Bez tego
,' j
działałby dla 4.Wyjaśnienie:
źródło
GolfScript, 6 bajtów
Wypróbuj online!
źródło