Votre tâche consiste à écrire un programme qui affiche la chaîne exacteProgramming Puzzles
(fin de ligne nouvelle, facultatif). Toutefois, lorsque tous les espaces, onglets et nouvelles lignes sont supprimés, il est généré Code Golf
(fin de ligne nouvelle, facultatif.)
Votre nombre d'octets est le nombre du premier programme, avec des espaces toujours présents.
Remarques
Les espaces dans
Code Golf
etProgramming Puzzles
seront supprimés dans le cadre de la suppression, alors planifiez en conséquence.Dans les codages où 0x09, 0x0A et 0x20 ne sont respectivement pas des tabulations, des nouvelles lignes ou des espaces, ces caractères seront supprimés.
Si votre code est
42 $@ rw$ @42
alors cela doit sortir
Programming Puzzles
. En outre, dans la même langue,42$@rw$@42
doit sortir
Code Golf
.
C'est du code-golf , donc le code le plus court en octets gagne! Bonne chance!
la source
Code Golf
sera-t-il également supprimé, qu’en est-il de celui qui se trouve dansProgramming Puzzles
.Réponses:
Python 2 , 50 octets
Essayez-le en ligne!
Avec tous les espaces supprimés:
Essayez ça en ligne!
Merci à Stephen S pour 3 octets et à Erik the Outgolfer pour 1
la source
" ">""
retourneTrue
, puisque lexicographiquement, un espace est plus grand que la chaîne vide. Dans le second cas,"">""
revientFalse
, puisque rien ne peut être plus grand que lui-même.True
etFalse
sont en fait juste1
et0
respectivement, juste dans lebool
type de données au lieu deint
oulong
. Dans le premier cas, les espaces sont préservés, ainsi, l'élément à l'index 1"Programming Puzzles"
est renvoyé textuellement. Dans le second cas, les espaces ont disparu, d’où l’intégration\x20
dans l’item à l’indice 0"Code\x20Golf"
pour conserver un espace.Python 2 ,
4847 octets-1 octet grâce à Erik l'Outgolfer
Essayez-le en ligne!
Essayez-le en ligne!
la source
05AB1E , 15 octets
Essayez-le en ligne!
Explication
la source
C,
64625352 octetsEssayez-le en ligne!
Utilise le fait que les chaînes C se terminent par un caractère nul
la source
CJam , 38 octets
Essayez-le en ligne! ou avec des espaces supprimés
Explication
Le fait que des espaces soient dans le programme ou non détermine si la première chaîne est true ou fausseté.
la source
:(
"Bncd\x19Fnke":)
remplacez le code heureux\x19
.Gelée , 18 octets
Essayez-le en ligne!
Explication
Dans le programme écrit, la première ligne est une fonction d'assistance qui n'est jamais exécutée. La deuxième ligne (la dernière dans le programme) est le programme principal et représente la représentation comprimée de la chaîne
"Programming Puzzles"
(qui est ensuite imprimée de manière implicite).Si vous supprimez la nouvelle ligne, le tout devient un gros programme.
“½ċṭ6Ỵ»
est la représentation comprimée de la chaîne"Code Golf"
.ḷ
évalue mais ignore son argument de droite, laissant la même valeur qu'avant l'exécution; il peut être utilisé pour évaluer les effets secondaires des fonctions (ce que j'ai déjà fait auparavant), mais il peut également être utilisé, comme ici, pour commenter efficacement du code.Fait intéressant, la logique réelle ici est plus courte que l'entrée 05AB1E, mais le code dans son ensemble est plus long car le compresseur de chaînes est moins performant pour la compression de ces chaînes.
la source
Gelée , 17 octets
Essayez-le en ligne!
Comment ça fonctionne
Comme dans l'autre réponse Jelly,
Ñ1ɦ+£)G
et½ċṭ6Ỵ
encodez les chaînes de programmation Puzzles et Code Golf .“
commence un littéral de chaîne et en sépare une autre, tout en»
sélectionnant le type de littéral (compression basée sur un dictionnaire).Ṃ
prend alors le minimum, cédant Code Golf .Cependant, en ajoutant un espace entre
½ċṭ6
etỴ
, nous obtenons une seconde chaîne complètement différente, et le littéral est évalué àComme caird coinheringaahing est lexicographiquement plus grand que Programming Puzzles ,
Ṃ
sélectionne plutôt la première chaîne.la source
“½ċṭ6Ỵ“Ñ1ɦ +£)G»Ṁ
Javascript,
464342 Octetsla source
\x20
dans la première chaîne par un espace.;
?;
s ne sont parfois pas nécessaires en JavaScript.\x20
par\40
pour sauvegarder un octet :-)Langage Wolfram, 62 octets
L'espace dans
[[0 1]]
est une multiplication implicite, c'est donc équivalent à[[0]]
. Sans espace,01
c'est juste1
. Les 0e et 1ère parties de cette expression sont les chaînes que nous voulons.Une autre solution de validité douteuse (44 octets, 2 enregistrés par Kelly Lowder):
Il
\.20
est remplacé par un espace immédiatement lorsque vous le tapez dans un environnement Mathematica. Par conséquent, il est difficile de savoir s'il est supprimé avec les autres espaces…la source
\:0020
se transforme en un espace et sera donc supprimée. Par conséquent, je ne suis pas sûr que cela remplisse les conditions requises. Aussi\.20
est plus courte.par deux caractères."Programming Puzzles"["Code"<>FromCharacterCode@32<>"Golf"][[01]]
marchera.\.20
suggestion - comment avez-vous trouvé cela? Je pensais avoir fouillé toute la documentation…)\.20
en faisant une faute de frappe. Semble fonctionner que pour les codes de caractère à deux chiffres. Je ne pense pas que cela soit dans la documentation.Excel - 56 octets
Très semblable à la plupart des autres réponses ... rien de compliqué ici.
la source
Haskell, 48 octets
Définit la fonction
f
qui retourne la chaîne correspondante.Pour référence, l'ancienne version est:
Haskell, 49/47 octets
avec des espaces supprimés
Deux correspondances simples.
(_)
correspond à tous les modèles. Vous pouvez améliorer la version sans espaces d'un octet en définissant le deuxième motif commef" "=
/f""=
, mais cela donne un avertissement "La correspondance de motif est redondante".Solution alternative avec le même nombre d'octets:
la source
Ohm ,
3332 octetsUtilise le codage CP437.
Essayez-le en ligne!ou essayer sans espace
Explication
Avec des espaces:
Sans espace:
la source
Code Golf
compression a rallongé . Je suppose que c'est à cause des capitales? De toute façon, il est toujours plus court que de l'écrire normalement car je ne peux pas utiliser d'espace littéral ici.Japt , 29 octets
Avec des espaces:
Essayez-le en ligne!
Sans espaces:
Essayez-le en ligne!
Ceci profite du fait que dans Japt, un espace ferme un appel de méthode. Avec des espaces, le code est à peu près équivalent à ce code JavaScript:
Ceci est évalué en tant que JavaScript et le résultat est envoyé à STDOUT. Puisque la dernière expression est
"Programming Puzzles"
, cette chaîne est imprimée.Sans espaces, le code est à peu près équivalent à:
(Si vous ne l'avez pas encore compris, la
S
variable est un espace unique.) La.r()
méthode sur une chaîne, si un argument lui est attribué, supprime toutes les occurrences de cet argument de la chaîne. Comme"Code Golf"
ne contient pas"ProgrammingPuzzles"
, il retourne"Code Golf"
inchangé, qui est ensuite envoyé à STDOUT.la source
Brachylog , 44 octets
Essayez-le en ligne!
Explication
la source
chaque côté pour corriger :)Alice , 44 octets
Essayez-le en ligne!
Sans espace:
Essayez-le en ligne!
Explication
Dans le premier programme, les deux miroirs
/
redirigent le pointeur d'instruction sur la deuxième ligne."selzzuP gnimmargorP"
pousse les points de code requis dans l'ordre de révérence,d
pousse la profondeur de la pile et&o
imprime ce nombre d'octets.@
termine le programme.Sans les espaces, le programme est sur une seule ligne. Dans ce cas, le pointeur d'instruction ne peut pas être déplacé en mode ordinal, de sorte qu'il
/
devient effectivement un no-ops (techniquement, l'IP ne bouge tout simplement pas pour un pas, la même chose/
est exécutée à nouveau et l'IP revient en mode Cardinal. ). Donc, si nous supprimons ceux du programme, cela ressemble à ceci:Pour inclure l'espace
Code Golf
, nous utilisons plutôt un point d'exclamation et le décrémentonst
. Une fois que nous avons tous les points de code sur la pile,#
ignore la commande suivante, qui correspond à la deuxième chaîne entière.d&o
puis imprime à nouveau la pile et@
termine le programme.la source
PHP, 44 octets
opérateur ternaire
PHP, 51 octets
commentaire
PHP, 57 octets
commutateur de tableau
la source
Pyth, 37 octets
Essayez ici.
Essayez ici.
la source
C #
88817063 octetsAvec des espaces dénudés:
Merci à BrianJ de m'avoir montré comment ne pas laisser d'espace entre un type de retour de méthode et le nom de la méthode, PeterTaylor pour avoir enregistré
718 octets et Patrick Huizinga pour la sauvegarde de 7 octets.Même méthode que tout le monde,
techniquement, cela pourrait être considéré comme non valide car la méthode ne spécifie pas de type de retour pour la méthode, mais il doit exister un espace entre le type de retour et le nom de la méthode.la source
@
, afin d'void@a...
éviter les erreurs de compilation "aucun type de retour" (ajoute également des octets, bien que :().Length<1
enregistre un octet;\u0020
enregistre six si j'ai compté correctement; et vous pouvez donner une réponse valide (et économiser quelques octets en même temps) en soumettant un lambda au lieu d’une fonction de niveau supérieur.Func<string>a=()=>...
@
est principalement utilisé si vous devez utiliser un mot réservé comme nom de variable (l'équivalent est entouré de[]
dans VB.NET (et MS SQL Server)).=>
place dereturn
vous n'avez pas besoin d'espaces. (Et même si vous utilisezreturn
, vous pouvezreturn(...)
).Common Lisp (SBCL), 52 octets
Impressions
Programming Puzzles
Impressions
Code Golf
Ungolfed:
Explication
Le truc vient essentiellement de la façon dont
#'format
fonctionne dans Common Lisp.Dans CL, la plupart des espaces peuvent être omis à condition qu'il n'y ait aucune ambiguïté quant au début ou à la fin des jetons. La première astuce consistait à séparer les symboles
format
ett
. Je devais terminer leformat
symbole sans ambiguïté sans changer l't
interprétation. Heureusement, `dans CL termine le jeton précédent avant qu’il ne soit traité et,
annule l’effet de` (`est utilisé pour implémenter un modèle, où la prochaine expression qui le suit est" citée ", mais toute sous-expression précédée de a,
est évaluée et le résultat inclus dans le modèle, donc `, est presque inexistant).Le troisième argument
format
est la chaîne de modèle.format
est similaire à printf en C, mais a des directives de formatage beaucoup plus puissantes et utilise ~ pour les indiquer au lieu de%. ~ [et ~] vous permettent de choisir entre plusieurs options d'impression, avec ~; en les séparant. Un argument supplémentaire est fourni pour formater - l'index numérique de celui que vous voulez imprimer. Afin de garantir la survie du "" dans Code Golf, j'ai utilisé la directive de tabulation ~ T, utilisée pour insérer des espaces, généralement pour aligner le texte en colonnes. ~ @ T est une variation qui insère simplement un nombre d'espaces donné, par défaut à 1.Enfin, il existe deux arguments pour les formats 0 et 1. Avant de supprimer les espaces, le 0 est utilisé par ~ [~; ~] pour sélectionner "Programmation Puzzles" et l'argument de format supplémentaire (le 1) est supprimé (je suis je ne sais pas à quel point il est normal de supprimer des arguments de format supplémentaires, mais cela fonctionne sous Steel Bank Common Lisp) Une fois les espaces supprimés, un seul argument (01) permet de sélectionner "Code Golf".
la source
,
est évaluée et épissée dans" N'est-il pas,@
nécessaire pour l'épissage?,
évalue l'expression suivante et inclut le résultat dans le modèle, tout en,@
supposant que l'expression sera évaluée dans une liste et inclut directement le contenu de cette liste dans le modèle. Traditionnellement, dans la communauté lisp, on,@
parle d’épissage, mais je ne suis pas sûr que ce soit le choix le plus évident. Je vais essayer de le reformuler un peu.Java 8,
745048 octetsla source
==
opérateur devrait également fonctionner,()=>""==""?"Code\u00A0Golf":"Programming Puzzles"
\u00A0
->\040
pour une économie de 2 octets.Japt , 32 octets
Essayez-le en ligne!
la source
PowerShell , 56 octets
Essayez-le en ligne!
Assez basique je dirais, mais ça fait le travail
la source
R, 50 octets
Je pense que c'est la même chose que cette réponse Javascript , et fondamentalement la même idée que toutes les autres.
la source
> <> , 42 octets
Avec des espaces
Essayez-le en ligne!
Sans espace
Essayez-le en ligne!
la source
dc , 50
Essayez-le en ligne .
[ ]
définit une chaîne -Z
mesure sa longueur. Si la longueur est 19, il contient un espace et la macro stockée dans le registre m est appelée, elle est impriméeProgramming Puzzles
et abandonnée. SinonCode Golf
est imprimé.la source
> <> ,
4745 octetsEssayez-le en ligne!
Merci à randomra pour -2 (deux astucieux
!
pour ne pouvoir en utiliser qu’un seul>o<
.)Le code crie "Flog! Flog! Flog!" et resembes un poisson.
la source
T-SQL,
96828167 octetsEssayez-le en ligne | Sans espaces
Ancienne version (96 octets):
la source
iif(len(' x')=2
print
. J'ai utilisé un à la+
place et cela a fonctionné.Perl 5 ,
4341 octetsEssayez-le en ligne!
Utilise le fait que ce
' '
soit vrai en perl et qu'il''
soit faux. La$"
variable est définie sur un espace par défaut.Merci à @NahuelFouilleul pour la suppression de deux octets.
la source
"Code$\"Golf"
est plus court etCode.$".Golf
aussiGolfScript , 38 octets
Essayez-le en ligne!
la source
Befunge , 76 octets
Essayez-le en ligne!
Ce n’est pas la solution la plus compacte, mais écrire du code Befunge sans espace est assez difficile.
Au tout début, il compare un caractère espace à 0. S'il est plus grand, il se place dans la ligne du bas. Si ce n'est pas le cas, comme c'est le cas lorsque vous remplacez l'espace par rien, il reste sur la première ligne.
la source
,
s?>:#,_
ce qui pourrait vous faire économiser beaucoup d'octets