Depuis 2009, les noms de code de version d'Android sont sur le thème de la confiserie. Android 1.5 est Cupcake, Android 1.6 est Donut, Android 2.0 est Eclair, etc. En fait, les noms de version sont alphabétiques!
C -> Cupcake
D -> Donut
E -> Eclair
F -> Froyo
G -> Gingerbread
H -> Honeycomb
I -> Ice Cream Sandwich
J -> Jellybean
K -> Kitkat
L -> Lollipop
M -> Marshmallow
N -> Nougat
O -> Oreo
En ordre:
Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, Jellybean, Kitkat, Lollipop, Marshmallow, Nougat, Oreo
Défi
Écrire un programme / fonction qui prend une lettre C
à O
et envoie son nom de code de la version Android respective.
Caractéristiques
- Les règles d'E / S standard s'appliquent .
- Les échappatoires standard sont interdites .
- Vous pouvez choisir de prendre en charge la saisie en minuscule ou en majuscule, voire les deux.
- La sortie peut être en casse du titre (
Cupcake
) ou complètement en minuscule (eclair
).Ice cream sandwich
peut être capitalisé comme vous le souhaitez. (Je ne m'attendais pas à ce que cela cause autant de confusion ...) - Ce défi ne consiste pas à trouver l'approche la plus courte dans toutes les langues, mais plutôt à trouver l' approche la plus courte dans chaque langue .
- Votre code sera noté en octets , généralement dans le codage UTF-8, sauf indication contraire.
- Les fonctions intégrées (Mathematica peut en avoir un: P) qui calculent cette séquence sont autorisées, mais il est conseillé d'inclure une solution ne reposant pas sur une fonction intégrée.
- Les explications, même pour les langues "pratiques", sont encouragées .
Cas de test
Ce sont des majuscules et des titres.
Input Output
F Froyo
I Ice Cream Sandwich
J Jellybean
N Nougat
G Gingerbread
L Lollipop
Dans quelques meilleurs formats:
F, I, J, N, G, L
f, i, j, n, g, l
F I J N G L
f i j n g l
MARSHMALLOW
et plus tard.Réponses:
Charbon de bois , 73 octets
Essayez-le en ligne! I / O est en minuscule. Basé sur cette version verbeuse . Explication:
la source
Bash + Core Utils
131128122117 octets.Le script est codé en Base64 car il contient des caractères spéciaux (étranges).
Accepte la lettre du nom de code Android uniquement en minuscule en tant que premier paramètre de position. Renvoie le nom de code complet également en minuscule .
Explication:
base32 $0
code le contenu du script avec Base32, avec le retour à la ligne par défaut de 76 caractères.tr 'A-Z47\n' 'a-z\n '
(notez que le\n
est écrit comme une nouvelle ligne littérale) mettra l’entrée en minuscule et remplacera respectivement 4 , 7 et\n
par\n
, espace et espace .grep ^$1
affichera les lignes correspondant à la chaîne fournie comme premier argument du script.Données binaires
Ce flux d'octets a été forgé afin qu'il ne contienne pas de saut de ligne et lorsqu'il est décodé avec Base32 conformément à la norme RFC 4648, la chaîne résultante est la liste des noms de code Android (en utilisant 4 comme délimiteur d'élément et 7 pour remplacer le caractère d' espacement ). Parmi ses particularités, il commence par un caractère de nouvelle ligne et un hash (
#
); il se comporte donc comme un commentaire et n'est donc pas exécuté par l'interpréteur.De plus, la ligne par défaut contenant 76 caractères de cette implémentation Base32 m'a aidé à octroyer un octet, car j'ai réorganisé les éléments pour qu'ils utilisent le saut de ligne comme l'un des espaces sandwich à la crème glacée .
En outre, et d' aller un peu hors-sujet, je pense que Google ne devrait pas
enpublicité directe des produits commerciaux dans les noms de code Android.la source
f
, il sort deux lignes: une avecfroyo
et une autre avec mystérieusefgeyltmuzteibno
.Python 3 , 139 octets
Essayez-le en ligne!
la source
Bash + Core Utils (Grep):
132 à130 octetsSimple comme pourrait être
la source
dd
est intelligente, mais pourriez-vous sauvegarder en tant que script et l'utiliser à la$1
place?Gelée , 57 octets
Essayez-le en ligne!
-5 merci à Jonathan Allan .
la source
Oị“¡ḟ¤Y7bh%XO€ḥıṣẎṄṢ°ḊḞİỌĿż0Y⁷ẠỵƈƭV>tÐNY_LɠðṅẒọX?v»Ḳ¤F⁾! y
Oị“¡ȥọ⁴ḷæĿɱ}#n#i®ÞSỊ3ƙɼıjṁ)-⁵g7ḥjC?4ƘẠʂ+ḋ¤⁺jṣð£?v»Ḳ¤F⁾! y
F
? oh c'est parce que je reçois des entrées sous forme de chaîne et non de caractèreC ++,
206201198 octetsMerci à @sergiol pour avoir aidé à économiser 3 octets!
Essayez-le en ligne!
C, 173 octets
Eh bien, cela a commencé en C ++, mais maintenant, il est également valide en C, et certains octets peuvent être sauvegardés en le compilant en C.
Essayez-le en ligne!
la source
#import
en c ++? Qu'est-ce que j'oublie ici?#import <cstdio>
parce que le manque de#include <stdio.h>
; ou peut-être que je me trompeJavaScript (ES6),
137136 octetsEnregistré 1 octet grâce à Neil
Démo
Afficher l'extrait de code
la source
([a-z]| .)+
(sauvegarde d'un octet) fonctionnerait même avec Ice Cream Sandwich au milieu de la chaîne (cela commencerait à échouer lorsque les noms de code ont atteint S bien que).[a-z\s]+
ne correspond pas aux lettres majuscules. Je ne sais pas si vous pouvez faire cela dans JSIce cream sandwich
, comme dans le cas test (bien que ce ne soit pas le titre)Japt ,
81 à79 octetsContient quelques caractères qui ne s'afficheront pas ici.
Essaye-le
Explication
Entrée implicite de la chaîne de caractères majuscules
U
.Une chaîne compressée (tout ce qui se trouve entre les guillemets) des noms, séparés par un
f
et sans leur première lettre, est divisée (q
) en un tableauf
.Dans ce tableau, nous obtenons l'élément à l'index (
g
) duU
code de caractère s. (Oui, emballage d'index!)Nous ajoutons cela à
U
et générons implicitement la chaîne résultante.la source
f
nouvelles lignes à la place: ethproductions.github.io/japt/…Excel VBA,
137134132 octetsAnonyme VBE fonction de fenêtre qui prend immédiatement entrée en tant que type prévu
Variant\String
et la longueur1
tenue d' une capitale lettre de la cellule[A1]
et des sorties à la fonction de fenêtre immédiate VBE-5 octets pour changer les espaces
ce cream sandwich
de(caractère 32) à
(caractère 160)`` (caractère 127) et supprimer le séparateur de virgule dans laSplit
fonctionla source
SOGL V0.12 , 81 octets
Essayez-le ici!
Explication:
Il existe maintenant une version plus courte de 80 octets , mais j’ai ajouté les + 2 / -2 intégrés à cause de ce défi: p
La chaîne compressée est divisée comme
"cup","cake"," donut eclair fro","yo gingerbread honeycomb ice","_","cream","_","sandwich jelly","bean kit","kat loll","i","pop marsh","mallow"," nougat oreo"
pour une utilisation maximale des mots anglais (beaucoup n'étaient pas dans le dictionnaire SOGL), pour le moment je ne trouve aucune amélioration.la source
> <> , 181 octets
Essayez-le en ligne!
Cela fonctionne en auto-modifiant le programme pour placer un
<
devant le nom correct à imprimer, dont la position est déterminée par la valeur de la lettre entrée.la source
Dyalog APL,
158143131 octets1 octet enregistré grâce à @ Zacharý
12 octets sauvegardés grâce à @Gil
Essayez-le en ligne!
Comment?
',,,upcake...'
- liste de mots','(1↓¨=⊂⊢)
- divisé par','
(⎕A⍳⍵)⊃
- prendre de la place de l'argument dans l'alphabet⍵,
- et annexer à la lettrela source
↑
comme aplatie?{⍵,∊⍬⍬'upcake' 'onut' 'clair' 'royo' 'ingerbread' 'oneycomb' 'ce cream sandwich' 'ellybean' 'itkat' 'ollipop' 'arshmallow' 'ougat' 'reo'[⎕A⍳⍵]}
fonctionne pour 1 moins d'octet!∊
que aplatit aussi, mais en fait aplatir et non "mélanger".↑(1 2)(3 4)
n'est pas plat, alors que∊(1 2)(3 4)
c'est.EXCEL, 154 octets
la source
C (gcc) ,
195192190 octets-2 octets grâce à @Quentin
Essayez-le en ligne!
la source
Tcl , 158 octets
Essayez-le en ligne!
la source
Haskell, 145 octets
la source
takeWhile
peut êtrefst.span
et endropWhile
conséquencesnd.span
.Gaia , 110 octets
Essayez-le en ligne!
Explication
la source
Ruby, 127 octets
Prend une entrée en majuscule. Essayez-le en ligne!
la source
Pyth ,
117116 octetsRéponse de Port of my Python .
Essayez-le ici! ou consultez la suite de tests
Pyth , 99 octets (70 caractères)
-15 octets grâce à @insert_name_here !
Essayez-le ici!
la source
Java (OpenJDK 8) , 128 octets
Essayez-le en ligne!
Utilisation de regex, 149 octets
Essayez-le en ligne!
la source
.split
réponse (uniquement avec un délimiteur différent) lorsque j'ai lu le défi et que je n'ai pas pu trouver de réponse en Java (jusqu'à ce que je passe à la deuxième page de réponses), donc +1. En ce qui concerne la réponse regex, cela([a-z]| .)+
peut être[a-z ]+
, puisque vous êtes autorisé à sortir "Sandwich à la crème glacée" (" La sortie peut être en cas de titre (Cupcake) ou complètement en minuscule (éclair). Le sandwich à la crème glacée peut être capitalisé comme vous le souhaitez. (Je ne m'attendais pas à autant de confusion.) ")Cubiquement ,
1047852830 octetsDes fonctions qui aident le golf aux gros programmes ...
Essayez-le en ligne! Il s'agit de 830 octets dans SBCS de Cubically .
~
lit l'entrée, l'@
imprime. (Cela casse lorsque l'entrée est invalide.)+.../...+...=7?6{...}
compare l'entrée de chaque valeur ASCII (C
,D
,E
,F
, etc.) et exécute le code à l'intérieur{...}
si elles sont égales.{...}
) imprime le reste du nom (le premier caractère est déjà imprimé).Merci au traducteur ASCII en Cubiquement de TehPers qui a été très utile.
la source
V , 125 octets
Essayez-le en ligne!
la source
Pyke , 117 octets
Réponse de Port of my Python .
Essayez-le ici!
Encodé en tant que code hexadécimal, la nouvelle technique de golf à Pyke, ce serait 116 octets :
(Coller et vérifier
Use hex encoding?
).la source
C # ,
147136129 octetsLes données
Char
c
La première lettre du nom de la versionString
Le nom complet de la versionGolfé
Ungolfed
Ungolfed lisible
Code complet
Communiqués
147 bytes
- Solution initiale.-11 bytes
- Emprunté l' idée d' Olivier Grégoire .- 7 bytes
- Modification de l'entrée de la fonction de explicit à implicite.Remarques
la source
(char c)
can just bec
R,
169155 octetsla source
Dyalog APL, 125 octets
Essayez-le en ligne!
Comment?
⍵∊⎕A
⍵
(la longue chaîne) avec 1 pour les majuscules, 0 pour les minuscules / espaces.+\
Groupe (renvoyer des nombres) ⍵ en majuscules.⎕A[...]
La lettre majuscule signifiée par un chiffre⍵/⍨⍞=
Le groupe désigné par ce nombre{...}'...'
Mis⍵
à la longue chaînela source
R,
131,126,123,112, 178 octetsMerci pour @Mark pour économiser 5 + 8 + 3 octets
la source
Recursiva ,
130 119118 octetsEssayez-le en ligne!
la source
C (gcc) , 168 octets
Essayez-le en ligne!
la source
PowerShell ,
136134 octetsEssayez-le en ligne!
Prend un
[char]
caractère d'entrée, en minuscule, et les sorties en minuscule.-2 grâce à la suggestion de AdmBorkBork au
-split0
lieu de-split','
.la source
0
comme séparateur puis-split0
enregistrer les guillemets.