introduction
Remarque: ce n'est pas une sorte de méthode pour encourager la tricherie. Comme l'a déjà dit Cᴏɴᴏʀ O'B said, étudier est la meilleure solution pour réussir un test: 3.
Considérez les réponses suivantes au test à choix multiples:
ABCBCAAB
Voici un tableau qui indique si les réponses correspondent:
A B C B C A A B
A 1 0 0 0 0 1 1 0
B 0 1 0 1 0 0 0 1
C 0 0 1 0 1 0 0 0
Cela nous donne les chiffres suivants:
10000110, 01010001, 00101000
Le défi est d'imprimer ces nombres binaires. Mais il est important de voir quelles lettres sont utilisées dans le test à choix multiple. Par exemple:
ABCDCDBCDABC
Cette lettre la plus haute est D
, qui est la 4ème lettre de l'alphabet . Par conséquent, nous devons sortir 4 nombres binaires différents . À savoir:
100000000100, 010000100010, 001010010001, 000101001000
Notez que vous devez regarder la lettre la plus haute . Prenons l'exemple suivant:
AACCACAC
Bien que le B
ne soit pas utilisé, nous devons afficher le résultat binaire pour B
. Cela signifie que la réponse serait:
11001010, 00000000, 00110101
Tâche
Étant donné les réponses à un test à choix multiples, sortez les nombres binaires. Vous pouvez supposer que l'entrée ne sera pas vide et ne contiendra que les lettres[A-Z]
. Au lieu de uns et de zéros, vous pouvez également utiliser true et false.
Cas de test:
Input: ABBBABABA
Output: 100010101, 011101010
Input: AAAAAAAAA
Output: 111111111
Input: AFGHEEHFD
Output: 100000000 000000000 000000000 000000001 000011000 010000010 001000000 000100100
Input: Z
Output: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1
Input: ABCDCDBCDABC
Output: 100000000100, 010000100010, 001010010001, 000101001000
C'est du code-golf , donc la soumission avec le moins d'octets gagne!
[a-z]
place?Réponses:
Pyth, 12 octets
Sorties sous forme de tableau imbriqué de booléens.
Essayez-le ici .
la source
Python 3, 71
Enregistré 22 octets grâce à Ogaday.
Enregistré 3 octets grâce à DSM.
Enregistré un tas d'octets grâce à un tableau de bools étant valide.
Prend l'entrée de ligne de commande en majuscule.
la source
*k,=map(ord,input())
PowerShell,
959473 octetsPrend l'entrée comme une chaîne majuscule, mais la transforme immédiatement
[char[]]
. Nous bouclons ensuite de0..
à la valeur maximale de$a
prise par ordre alphabétique (d'où la-65
conversion de ASCII). Par exemple, avecADCEB
, cela peut être considéré comme une boucle deA
àE
.À chaque itération, nous définissons une variable d'aide
$d
égale à la valeur alphabétique actuelle (et non ASCII). Nous bouclons ensuite par tous$a
, chaque fois que la mise soit0
ou1
sur le pipeline, selon que$_-$d-65
est truthy ou Falsey ( à savoir si nous sommes dans la « fente » à droite). Cela fonctionne car toute valeur non nulle dans PowerShell est véridique, ce qui signifie que si notre lettre actuelle$_
"n'égale" pas l'emplacement dans lequel nous nous trouvons$d
, alors!
c'est le cas$false
, ou0
.Chacun de ces tableaux de
0
s et1
s est ensuite-join
édité ensemble et remis sur le pipeline. Lorsque la boucle externe se termine, nous avons un tableau de chaînes, qui affichera une chaîne par ligne.Exemples
Edit 1 - enregistré un octet en utilisant Boolean-not au lieu de -eq
Edit 2 - enregistré 21 octets supplémentaires en éliminant le tableau supplémentaire $ b
la source
LabVIEW,
302220 LabVIEW PrimitivesPasse de az jusqu'à ce que la somme de tous les bools soit égale à la longueur d'entrée. Transforme ensuite les bools en nombres.
Prend maintenant directement le max au lieu de vérifier la somme booléenne.
Puisque les bools 2D sont viables maintenant, j'économise 2 primitives en sortant le fil vert devant
?1:0
pourrait le refaire mais je suis trop paresseux ...la source
Cjam, 25 octets
Soupir,
Explication
la source
Haskell,
4634 octetsExemple d'utilisation:
g "ACDC"
->[[True,False,False,False],[False,False,False,False],[False,True,False,True],[False,False,True,False]]
.Comment ça fonctionne:
la source
Pyth,
2019171514 octetsExplication:
Produit un tableau 2D de bools
Essayez-le ici
la source
ES6, 92 octets
Renvoie un tableau de tableaux de fausses et vraies. Si vous préférez un tableau de chaînes de zéros et de uns, alors pour 97 octets:
la source
Octave, 19 octets
Utilise la diffusion automatique d'Octave sur la plage
A
jusqu'à l'élément max dans l'entrée pour produire un tableau booléen 2D d'éléments correspondants.Exemple:
Essayez-le ici sur ideone .
la source
Lua,
208189 octetsC'était difficile à Lua, comme d'habitude, nous devons tout faire à partir de zéro, et cela prend beaucoup de place! Ce programme prend une chaîne en argument et affiche le résultat :).
Edit: @Adnan m'a dit que nous sommes maintenant autorisés à retourner une matrice de booléens, alors voici une nouvelle version! C'est maintenant une fonction qui prend une chaîne de caractères en majuscule et retourne la matrice :).
Ancienne version de 208 octets
C'est celui qui fonctionne avec les résultats d'argument et d'impression.
Non golfé et explications
Essayer d'imprimer un tableau dans Lua entraînerait l'impression de son adresse et la concaténation des bools est impossible. Voici donc une fonction qui vous aidera si vous souhaitez tester cette soumission
la source
Perl, 84 octets
Oh mon dieu, je semble avoir cassé le surligneur.
Version non golfée:
la source
PHP,
106929087 octetsUtilise l'encodage Windows-1252.
Courez comme ceci (
-d
ajouté pour l'esthétique uniquement):$i=0
$x
ailleurs et en incrémentant$c
pour compenserla source
C #, 68 octets
Exécuter en C # Pad
Cette fonction anonyme prend une
char[]
entrée et une sortieIEnumerable<IEnumerable<int>>
, avec seulement 0 et 1.la source
k, 15 octets
Essayez-le en ligne!
la source