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>
Réponses:
Gelée ,
532 octetsMerci à Dennis d' avoir économisé 2 octets. Merci également à FryAmTheEggman pour avoir économisé 1 octet. Code:
Explication:
Utilise le codage Jelly .
Essayez-le en ligne!
la source
Python 3.5, 18 octets
Cela fonctionne car
print
le séparateur par défaut est un espace unique.la source
print(*input(),end=' ')
serait portable, mais ce n'est pas très gaie ...Hexagony ,
21131210 octetsCode:
Économisé beaucoup d'octets grâce à FryAmTheEggman . Code:
Ou sous une forme plus lisible:
Essayez-le en ligne!
Explication:
Le programme Hexagony commence dans le coin supérieur gauche, en définissant immédiatement le bord de la mémoire sur la valeur ASCII de
P
80 (valeur 80). Après cela, nous pouvons voir que le chemin suivant est pris:Nous pouvons voir que le chemin emprunté est:
P,<;.P/0....;*/>
. Après celaP
, nous prenons un octet de saisie de l'utilisateur. Si cela est vide, la branche suivante (<
) nous dirigerait vers le nord-est. Si l'entrée n'est pas vide, la branche nous dirige vers le sud-est. Après cela, nous générons l'entrée utilisateur à l'aide de;
. Nous remettons le bord mémoire àP
80. Le zéro suivi du miroir est ensuite concaténé à notre nombre, ce qui donne 800. Il est ensuite émis à l'aide de la;
commande, mais il est d'abord pris modulo 256, ce qui donne 32. est le caractère de l'espace. Après cela, nous réinitialisons le bord de la mémoire à l'aide de la*
commande et revenons en boucle sur le reste de l'entrée utilisateur. Lorsque nous avons terminé avec l'entrée de l'utilisateur, le chemin est dirigé vers le nord-est:Cela va essentiellement à la
@
commande, qui termine le programme.L' utilisation Timwi étonnante de HexagonyColorer pour faire des diagrammes.
la source
P,<0/*;@.>
P,<<>0;@>*
est également 10, mais malheureusement, je ne pense pas que cela aide à raser un autre octet.Haskell, 11 octets
Exemple d'utilisation:
((:" ")=<<) "Code Golf"
->"C o d e G o l f "
.Mappez chaque caractère
c
sur une liste de deux éléments[c, space]
et concaténez le tout en une seule liste.la source
Rétine , 5
Notez l'espace à la fin de la deuxième ligne.
$&
est équivalent à$0
. Merci à @ mbomb007 pour ce lien .Essayez-le en ligne.
la source
$0
. C'est la même chose, mais plus commun.JavaScript, 20 octets
Simple, je souhaite juste que Array.join a ajouté l'espace à la fin afin que je puisse économiser 3 octets.
la source
[...s,``].join` `
peut-être[...s,,].join
...join
fonction comme retour, comme je m'y attendais.` `
dans un commentaire.> <> ,
1310 octets3 octets enregistrés grâce à @ Sp3000
Essayez ici . Cliquez sur le lien, puis sur Soumettre , puis tapez une entrée et appuyez sur Donner , puis exécutez le programme avec Démarrer ou Exécuter sans animation .
Explication
la source
i:0(?;o 'o
pour 10io 'o
fonctionne aussi, en se trompant.'
s'enroule, poussant des caractères jusqu'à ce qu'il en trouve un autre'
pour le fermer. Dans ce cas, les caractères d'ouverture et de fermeture'
sont identiques et la plus grande partie du code source est importée, mais le caractère supérieur ne représente que de l'espace puisqu'il a été poussé en dernier.Java, 132 (System.in) ou 99 (argument de programme) octets
Pouvez-vous sentir les frais généraux ce soir?
shooqie a découvert un moyen plus court de 6 octets pour le faire mais je ne leur volerai pas leur approche. Je l'ai utilisé avec les versions STDIN et lambda, cependant.
28 caractères pour un lambda mais cela ne répond pas aux exigences du programme.
la source
replaceAll
.Cubix , 10 octets
Cubix est un langage bidimensionnel développé par @ETHproductions où les commandes sont encapsulées dans un cube. Essayez-le en ligne
Ceci mappe sur un cube avec une longueur de bord 2
Commence avec une entrée
i
. Le flux est redirigé vers le nord^
vers la face supérieure.?
Si la valeur est négative, tournez à gauche pour terminer@
, le zéro continue dans le décalage à droitew
ou positif, tournez à droite puis réfléchissez à gauche\
. Caractère de sortie avec un espace de finoSo
.la source
Cubix , 9 octets
Voir le travail en ligne!
Cubix est un langage dans lequel les instructions sont mappées sur la face d’un cube. Ce programme forme le cube suivant:
Le pointeur d'instruction commence à
i
, ce qui permet de saisir un autre code de caractère et de le placer dans la pile. S'il n'y a plus aucune entrée à prendre, les?
adresses IP tournent à gauche, là où elles touchent/
et se reflètent vers le haut@
, ce qui termine le programme.Cependant, s'il reste des entrées, la valeur sera un code de caractère. Comme tous les codes de 1 caractère sont positifs, le
?
IP tourne à droite, où il passe tout autour du cube, en passanto
sur le chemin de sortie du caractère. Il frappe ensuite,/
ce qui le fait revenir en boucle>So
, ce qui pousse et imprime un espace. La propriété intellectuelle continue vers l’Ouest jusqu’ài
remonter au début de la boucle principale.1 Si le caractère est un octet nul, il ignorera la valeur
?
et continuera tout droit, en produisant simplement un seul espace.Bien sûr, une explication écrite n’est possible que dans la mesure du possible, je vous recommande donc vivement de la visualiser dans l’ interprète en ligne . Il existe une option "vitesse" qui vous permet de voir l'exécution aussi lente ou rapide que vous le souhaitez.
la source
@.Uoi?So
Stax , 2 octets
Cravates gelée!
Essayez-le à staxlang.xyz!
Cela ne fait que pousser
0
vers la pile et compresser la chaîne à partir de l'entrée standard, en répétant le 0 si nécessaire. Dans Stax, le point de code 0 d'une chaîne est généralement converti en 32 (espace).Ceci est suffisamment court pour que l’embarquement
ûT
ne réduise en rien la lisibilité.la source
05AB1E, 4 octets
Essayez-le en ligne.
Explication
la source
ðâJ
non-concurrent.Sðý
CJam ,
54 octets1 octet en moins grâce à @FryAmTheEggman
Essayez-le en ligne!
Explication
la source
Java, 92
la source
Awk, 7 octets
(Option de ligne de commande code 4 caractères + 3 caractères.)
Échantillon échantillon:
(Il y a un certain désaccord sur ce qui devrait être inclus dans le nombre d'options en ligne de commande. J'ai inclus ce qui est réellement transmis à l'
awk
interpréteur: «-», «F» et un séparateur entre «F» et le paramètre de chaîne vide. Voir ci-dessous. Je veux dire.)la source
PHP, 39 octets
Lancez le depuis la ligne de commande
https://eval.in/541179
la source
WhoScript 38 octets
Fonctionne mieux lorsque la chaîne est indiquée sur la ligne de commande, mais vous pouvez également effectuer un caractère à la fois en temps réel.
Ungolfed:
la source
Labyrinthe , 10 octets
Cela se termine par une erreur, mais le message d'erreur passe à STDERR.
Essayez-le en ligne!
Explication
C'est l'un des rares cas où un programme complètement linéaire est réalisable. La boucle est réalisée via les commandes de modification du code source
<
et>
, ce qui fonctionne car après chaque itération, nous savons que la pile est à nouveau vide.<
décale cycliquement la ligne entière d'une cellule vers la gauche, on obtient donc:Cela prend le pointeur d'instruction (IP) avec celui-ci de sorte que l'IP est maintenant à l'extrémité droite du code et doit être déplacé à gauche. Ensuite, la
>
modification inverse est-elle effectuée de sorte que le code source passe de nouveau àMaintenant, nous exécutons une seule itération (de droite à gauche), avant que tout ne recommence:
la source
Gema , 5 octets
Échantillon échantillon:
la source
MATL , 7 octets
Essayez-le en ligne!
Explication
la source
APL, 5 octets
Cela prend 2 éléments pour chaque caractère de la chaîne, avec pour effet d'ajouter un espace
Pour en faire un programme qui utilise stdin, il faut le même nombre d’octets:
Essayez ici .
la source
brainfuck,
2422 octetsExemple simple utilisant le 32 le plus court connu pour les caractères d'espacement.
Essayez-le en ligne
la source
,[.>>-[-[-<]>>+<]>-.,]
enregistre deux octets.PHP, 31 octets
prend en entrée l'argument de ligne de commande.
la source
Threead ,
4516 octets non concurrents.Prend la saisie via STDIN.
La première ligne / bande lit simplement les octets de STDIN et les écrit. La deuxième ligne, stocke initialement un espace via
32c
, puis en même temps que le caractère suivant est en cours de lecture, génère cet espace.Essayez-le en ligne!
la source
Python 2,
272524 octetsPlus court que la réponse de Raffi ...
-1 grâce à 60919 (FlipTack).
la source
lambda x:' '.join(x)+' '
longueur est de 1 octet.C, 50 octets
Un peu de
main()
récursion :)Essayez-le en ligne! - Si vous utilisez ceci sur votre propre machine, utilisez Ctrl+ Dpour indiquer EOF.
la source
C, 56 octets (en tant qu'argument de programme), 46 octets (à partir de stdin)
Plaine vieux réponse C. Une fois compilé, le programme doit être appelé avec une chaîne comme premier paramètre. Une chaîne avec des espaces doit être placée entre guillemets. Pour l'exemple dans le post de départ:
Qui va sortir
Solution qui lit directement à partir de stdin.
Un octet en moins grâce à @FryAmTheEggman
la source
stdin
plutôt que de les prendre comme argument. Aussi, voici une page avec quelques conseils utiles pour la pratique du golf en C: codegolf.stackexchange.com/q/2203/13877getchar()
est plus courte. De plus, vous n'avez pas besoin d'inclure pour la plupart des compilateurs C.R, 36 octets
Exemple:
la source
sep=" "
, cela peut donc être beaucoup plus court: essayez-le en ligne!Sérieusement, 7 octets
Essayez-le en ligne!
Man, cela nécessitait de l'espace de fin ajouté 3 octets supplémentaires. Sans cela,
,' j
travaillerait pour 4.Explication:
la source
GolfScript, 6 octets
Essayez-le en ligne!
la source