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>
Antworten:
Jelly ,
532 BytesVielen Dank an Dennis für das Speichern von 2 Bytes. Vielen Dank auch an FryAmTheEggman für die Einsparung von 1 Byte. Code:
Erläuterung:
Verwendet die Jelly-Codierung .
Probieren Sie es online!
quelle
Python 3.5, 18 Bytes
Dies funktioniert, weil
print
das Standardtrennzeichen ein einzelnes Leerzeichen ist.quelle
print(*input(),end=' ')
wäre tragbar, aber es ist nicht sehr golfen ...Hexagony ,
21131210 BytesCode:
Sparte eine Menge von Bytes dank FryAmTheEggman . Code:
Oder in besser lesbarer Form:
Probieren Sie es online!
Erläuterung:
Das Hexagony-Programm startet in der oberen linken Ecke und setzt die Speicherkante sofort auf den ASCII-Wert von
P
80. Danach sehen wir, dass der folgende Pfad eingeschlagen wird:Wir können sehen , dass der Weg genommen ist:
P,<;.P/0....;*/>
. Nach demP
nehmen wir ein Byte Benutzereingabe. Wenn dies leer ist, würde der folgende Zweig (<
) uns nach Nordosten leiten. Wenn die Eingabe nicht leer ist, werden wir vom Zweig nach Südosten geleitet. Danach geben wir die Benutzereingaben mit aus;
. Wir setzen die Speicherkante zurück aufP
80. Die Null, auf die der Spiegel folgt, wird dann zu unserer Zahl verkettet, was zu 800 führt. Dies wird dann mit dem;
Befehl ausgegeben , aber zuerst wird es modulo 256 genommen, was zu 32 führt ist das Leerzeichen. Danach setzen wir die Speicherflanke mit dem*
Befehl zurück und kehren zurück, um den Rest der Benutzereingabe zu durchlaufen. Wenn wir mit der Benutzereingabe fertig sind, ist der Pfad nach Nordosten ausgerichtet:Dies geht im Wesentlichen zu dem
@
Befehl, der das Programm beendet.Verwenden Sie den erstaunlichen HexagonyColorer von Timwi, um die Diagramme zu erstellen.
quelle
P,<0/*;@.>
P,<<>0;@>*
ist auch 10, aber ich glaube leider nicht, dass es hilft, ein anderes Byte zu entfernen.Haskell, 11 Bytes
Anwendungsbeispiel:
((:" ")=<<) "Code Golf"
->"C o d e G o l f "
.Ordnen Sie jedes Zeichen
c
einer Liste mit zwei Elementen zu[c, space]
und verknüpfen Sie alles zu einer einzigen Liste.quelle
Netzhaut , 5
Beachten Sie das Leerzeichen am Ende der zweiten Zeile.
$&
ist äquivalent zu$0
. Vielen Dank an @ mbomb007 für diesen Link .Probieren Sie es online aus.
quelle
$0
. Es ist das gleiche, aber häufiger.JavaScript, 20 Bytes
Ganz einfach, ich wünschte nur, Array.join hätte den Speicherplatz am Ende hinzugefügt, damit ich 3 Bytes einsparen könnte.
quelle
[...s,``].join` `
vielleicht?[...s,,].join
...join
Funktion als Rückgabe, wie ich es erwarten würde.` `
einen Kommentar eingibt .> <> ,
1310 Bytes3 Bytes gespart dank @ Sp3000
Probieren Sie es hier aus . Klicken Sie auf den Link, dann auf Senden , geben Sie eine Eingabe ein, drücken Sie auf Geben und führen Sie das Programm mit Start oder Ausführen ohne Animation aus .
Erläuterung
quelle
i:0(?;o 'o
für 10io 'o
funktioniert auch fehlerfrei.'
wickeln Sie sich einfach um und drücken Sie Zeichen, bis es ein anderes findet'
, um es zu schließen. In diesem Fall sind das öffnende und das schließende'
Zeichen dasselbe und der größte Teil des Quellcodes wird übertragen, aber das oberste Zeichen ist nur ein Leerzeichen, da es zuletzt übertragen wurde.Java, 132 (System.in) oder 99 (Programmargument) Bytes
Spürst du den Overhead heute Nacht?
shooqie hat einen 6-Byte-kürzeren Weg gefunden, um dies zu tun, aber ich werde ihren Ansatz nicht stehlen. Ich habe es jedoch mit den STDIN- und Lambda-Versionen verwendet.
28 Zeichen für ein Lambda, aber das entspricht nicht den Programmanforderungen.
quelle
replaceAll
.Cubix , 10 Bytes
Cubix ist eine zweidimensionale Sprache, die von @ETHproductions entwickelt wurde und bei der die Befehle in einen Cube eingebunden werden. Probieren Sie es online aus
Dies wird auf einen Würfel mit Kantenlänge 2 abgebildet
Beginnt mit einer Eingabe
i
. Die Strömung wird nach Norden^
zur Oberseite umgeleitet .?
Wenn der Wert negativ ist, biegen Sie zum Beenden nach links ab@
, Null geht weiter in Rechtsverschiebungw
oder Rechtsbiegung und spiegeln Sie dann links wider\
. Ausgabezeichen mit einem nachgestellten LeerzeichenoSo
.quelle
Cubix , 9 Bytes
Sehen Sie, wie es online funktioniert!
Cubix ist eine Sprache, in der die Anweisungen auf die Oberfläche eines Cubes abgebildet werden. Dieses Programm bildet das folgende Würfelnetz:
Der Befehlszeiger beginnt bei
i
, der einen anderen Zeichencode von der Eingabe nimmt und ihn zum Stapel schiebt. Wenn keine weiteren Eingaben mehr zu machen sind,?
dreht das die IP nach links, wo es trifft/
, und spiegelt sich nach oben@
, was das Programm beendet.Wenn jedoch noch Eingaben vorhanden sind, handelt es sich bei dem Wert um einen Zeichencode. Da alle 1- Zeichen-Codes positiv sind,
?
dreht sich die IP nach rechts, wobei sie sich um den gesamten Würfel dreht undo
auf dem Weg weitergibt , der das Zeichen ausgibt. Es schlägt dann zu/
, wodurch es eine Schleife zurückführt>So
, die ein Leerzeichen drückt und druckt. Die IP fährt nach Westen fort, bis sie sichi
zurück zum Anfang der Hauptschleife wickelt .1 Wenn das Zeichen ein Null-Byte ist, ignoriert es das
?
und gibt einfach ein einzelnes Leerzeichen aus.Natürlich gibt es nur so viel, was eine schriftliche Erklärung leisten kann. Daher empfehle ich Ihnen, dies im Online-Dolmetscher anzuzeigen . Es gibt eine "Geschwindigkeit" -Option, mit der Sie die Ausführung so langsam oder schnell anzeigen können, wie Sie möchten.
quelle
@.Uoi?So
Stax , 2 Bytes
Krawatten Gelee!
Probieren Sie es bei staxlang.xyz!
Alles, was Sie tun müssen, ist,
0
auf den Stapel zu schieben und die Zeichenfolge von der Standardeingabe damit zu komprimieren und die 0 nach Bedarf zu wiederholen. In Stax wird der Codepunkt 0 in einer Zeichenfolge normalerweise in 32 (Leerzeichen) konvertiert.Dies ist kurz genug,
ûT
um die Lesbarkeit zu verringern.quelle
05AB1E, 4 Bytes
Probieren Sie es online aus.
Erläuterung
quelle
ðâJ
nicht konkurrierend.Sðý
CJam ,
54 BytesDank @FryAmTheEggman 1 Byte weniger
Probieren Sie es online!
Erläuterung
quelle
Java, 92
quelle
Awk, 7 Bytes
(4 Zeichen Code + 3 Zeichen Befehlszeilenoption.)
Probelauf:
(Es gibt einige Meinungsverschiedenheiten darüber, was in der Anzahl der Befehlszeilenoptionen enthalten sein soll. Ich habe angegeben, was tatsächlich an den
awk
Interpreter übergeben wird: "-", "F" und ein Trennzeichen zwischen "F" und dem leeren Zeichenfolgenparameter Ich meine.)quelle
PHP, 39 Bytes
Führen Sie es über die Befehlszeile aus
https://eval.in/541179
quelle
WhoScript 38 Bytes
Funktioniert am besten, wenn die Zeichenfolge in der Befehlszeile angegeben wird. Sie kann jedoch auch zeichenweise in Echtzeit ausgeführt werden.
Ungolfed:
quelle
Labyrinth , 10 Bytes
Das wird mit einem Fehler beendet aber die Fehlermeldung geht an STDERR.
Probieren Sie es online!
Erläuterung
Dies ist einer der seltenen Fälle, in denen ein vollständig lineares Programm möglich ist. Die Schleife wird über die Befehle zum Ändern des Quellcodes
<
und erreicht>
, was funktioniert, da wir nach jeder Iteration wissen, dass der Stack wieder leer ist.<
Verschiebt die gesamte Zeile zyklisch um eine Zelle nach links, so erhalten wir:Dieser nimmt den Anweisungszeiger (IP) mit, sodass sich die IP nun am rechten Ende des Codes befindet und nach links verschoben werden muss. Als nächstes
>
wird die entgegengesetzte Modifikation durchgeführt, sodass der Quellcode wieder auf "" verschoben wirdNun führen wir eine einzelne Iteration durch (von rechts nach links), bevor alles von vorne beginnt:
quelle
Gema , 5 Bytes
Probelauf:
quelle
MATL , 7 Bytes
Probieren Sie es online!
Erläuterung
quelle
APL, 5 Bytes
Für jedes Zeichen in der Zeichenfolge werden 2 Elemente benötigt, wodurch ein Leerzeichen hinzugefügt wird
Um daraus ein Programm zu machen, das stdin benötigt, ist es die gleiche Anzahl von Bytes:
Probieren Sie es hier aus .
quelle
Brainfuck,
2422 BytesEinfaches Beispiel unter Verwendung der kürzesten bekannten 32 für das Leerzeichen.
Probieren Sie es online aus
quelle
,[.>>-[-[-<]>>+<]>-.,]
spart zwei Bytes.PHP, 31 Bytes
Nimmt Eingaben vom Befehlszeilenargument entgegen.
quelle
Threead ,
4516 Bytes nicht konkurrierend.Übernimmt die Eingabe über STDIN.
Die erste Zeile / das erste Band liest einfach Bytes von STDIN und schreibt sie. Die zweite Zeile speichert zunächst ein Leerzeichen über
32c
und gibt dann zur gleichen Zeit, zu der das nächste Zeichen gelesen wird, dieses Leerzeichen aus.Probieren Sie es online!
quelle
Python 2,
272524 BytesKürzer als Raffis Antwort ...
-1 dank 60919 (FlipTack).
quelle
lambda x:' '.join(x)+' '
ist dies 1 Byte kürzer.C 50 Bytes
Ein bisschen
main()
Rekursion :)Probieren Sie es online! - Wenn Sie dies auf Ihrem eigenen Computer verwenden, verwenden Sie Ctrl+ D, um EOF zu kennzeichnen.
quelle
C, 56 Bytes (als Programmargument), 46 Bytes (von stdin)
Einfache alte C-Antwort. Nach dem Kompilieren muss das Programm mit einem String als erstem Parameter aufgerufen werden. Ein String mit Leerzeichen muss in Anführungszeichen eingeschlossen werden. Für das Beispiel im Startbeitrag:
Welches wird ausgegeben
Lösung, die direkt von stdin liest.
Ein Byte weniger dank @FryAmTheEggman
quelle
stdin
eher lesen, als sie als Argument heranzuziehen. Hier ist auch eine Seite mit einigen nützlichen Tipps zum weiteren Golfen in C: codegolf.stackexchange.com/q/2203/13877getchar()
ist kürzer. Außerdem benötigen Sie das Include für die meisten C-Compiler nicht.R, 36 Bytes
Beispiel:
quelle
sep=" "
, also kann es viel kürzer sein: Probieren Sie es online aus!Im Ernst, 7 Bytes
Probieren Sie es online!
Mann, das erforderte Platz zum Beenden und fügte 3 zusätzliche Bytes hinzu. Ohne
,' j
würde es für 4 funktionieren.Erläuterung:
quelle
GolfScript, 6 Bytes
Probieren Sie es online!
quelle