Nous espérons donc tous être familiers avec la notation des cellules du tableur «A1».
Il s'agit simplement d'une représentation alphanumérique du positionnement de ladite cellule au sein d'une grille. La ou les lettres représentent le positionnement des colonnes de la cellule et le nombre représente la ligne.
La partie «lettre» peut comprendre une ou plusieurs lettres de l'alphabet anglais à 26 lettres, qui doivent toutes être des majuscules. Ces cartes correspondent aux nombres grâce à l'utilisation de la numération bijective à 26 adiques. La partie «nombre» peut être constituée de tout entier positif non nul.
Le défi, écrire un programme qui, étant donné la notation A1 de n'importe quelle cellule sous la forme d'une chaîne unique, peut produire une chaîne contenant la position de la colonne représentée sous forme de nombre, suivi d'un espace, puis du numéro de ligne.
Exemples d'entrées / sorties ci-dessous:
A1
>>1 1
B10
>>2 10
AC4
>>29 4
AAC753
>>705 753
F123
>>6 123
GL93
>>194 93
C'est mon premier défi, d'où la relative simplicité et la pauvreté potentielle des critères.
EDIT : La chaîne doit être composée de lettres suivies de chiffres et le critère gagnant est la longueur de code la plus courte (si cela peut être une chose)
EDIT : lié à cela mais fait le processus inverse avec un index de départ différent. Certains diront que ce fait rend le puzzle lié plus intéressant.
["A", "1"]
Réponses:
05AB1E ,
1211 octetsUtilise l' encodage 05AB1E . Essayez-le en ligne!
la source
Microsoft Excel, 43 octets.
Je ne pouvais pas m'en empêcher, je devais juste utiliser le bon outil pour le travail. Prend une entrée sur A1.
Cas de test
la source
Microsoft Excel, 40 octets
Version en langue portugaise du Brésil.
Version traduite (et donc golfée) de la solution d' ATaco .
la source
Python 2 ,
949173 octets-3 octets grâce à Jonathan Allan
-18 octets grâce à tsh
Essayez-le en ligne!
Cela abuse de la façon dont cela
.strip
fonctionne, en supprimant tous les chiffres aveca=s(`3**39`)
où`3**39`
est juste un moyen plus court de générer les chiffres de0
à9
, cela ne stockera que les caractères sura
qui seront utilisés pour supprimer les caractères des numéros surs(a)
la source
strip
les entrées soient des caractères uniques, donc3**39
devraient faire le même travail.Google Sheets, 43 octets
Essayez-le en ligne!
A1
est la cellule d'entrée. J'espère que le lien ci-dessus fonctionne, je n'ai jamais essayé le golf de code avec Google Sheets auparavant.la source
=COLUMN(INDIRECT(A1))&" "&ROW(INDIRECT(A1
pour 41 octets. les feuilles remplissent les parens droits manquants.JavaScript, 72 octets
la source
Proton , 113 octets
Essayez-le en ligne!
-19 octets empruntant l'algorithme de Rod ( note à soi: ajout de listcomps )
la source
Dyalog APL, 44 octets
Essayez-le en ligne!
la source
(a~⎕D)
. Cherchez à la⎕A
place de⎕AV
. Faites tacite. Échanger l'argument de,
. Descend à seulement 16 octets:~∘⎕A,⍨26⊥⎕A⍳~∘⎕D
Pyth - 31 octets
Première tentative, très naïve.
Essayez-le en ligne ici .
la source
Perl 5 , 35 + 1 (-p) = 36 octets
Essayez-le en ligne!
L'
map
instruction traite la colonne comme un nombre base26 et la convertit en décimal. La substitution remplace les lettres par les chiffres. L'entrée et la sortie sont implicites dans l'-p
indicateur.la source
Mathematica, 108 octets
La forme opérateur
StringReplace
prend la partie alphabétiquec
de la chaîne, la convertit en une liste de codes de caractères, soustrait64
de chaque point de code, interprète le résultat comme un26
entier de base , convertit cet entier en unString
, puisStringJoin
un espace sa suivi par la partie numériquer
.Utilisation d'une expression régulière (également
108
octets):la source
ToCharacterCode@c-64
peut parfois être réduit àLetterNumber@c
.LetterNumber
n'encapsule pas la sortieList
lorsque l'entrée est un seul caractère, cependant.Gelée ,
1615 octetsUn programme complet acceptant la chaîne comme argument et affichant le résultat
Essayez-le en ligne!
Comment?
Remarque: la conversion à partir d'une liste de nombres à l'aide de l'atome de conversion de base
ḅ
permet aux lieux d'être en dehors de la plage attendue, donc la conversion à partir de, disons[2,26,1]
("BZA"
) en utilisantḅ26
est calculée comme 2 × 26 2 + 26 × 26 1 + 1 × 26 0 = 2029 même si la représentation "attendue" l'aurait été[3,0,1]
.la source
Mathematica,
77726968 octetsPrend une liste de personnages.
Essayez-le sur Wolfram Sandbox
Usage
ou
Explication
Dans l'entrée remplacer ...
Une liste contenant deux séquences
a
etb
(avec 1 ou plusieurs éléments), où seb
compose uniquement de caractères numériques ... (Mathematica utilise la correspondance de motifs paresseux, donc aucune vérification n'est requise poura
)dans...
Réglez
f
sur la fonction de conversion numérique-entier.Convertissez
a
en lettres (a -> 1, b -> 2, etc.).Convertissez ce qui précède de la base-26 en décimal et convertissez-le
b
en décimal.la source
Haskell, 67 octets
Essayez-le en ligne.
la source
Rétine , 85 octets
Essayez-le en ligne! Explication:
Séparez les lettres les unes des autres et le numéro final.
Convertissez les lettres en décimales.
Convertissez tout en unaire.
Tant qu'il y a au moins trois nombres, multipliez le premier par 26 et ajoutez-le au second.
Convertissez tout en décimal.
la source
Rubis ,
5048 + 1 =5149 octetsUtilise le
-p
drapeau. -2 octets dem-chrzan
.Essayez-le en ligne!
la source
i=i*26+b-64
enregistre 2 octets.> <>, 42 octets
Essayez-le en ligne
Explication:
La boucle ci-dessus lira le premier numéro de la partie des nombres (par exemple, «3» dans «AB34») avant de se rompre, et en aura déjà soustrait 64, donc le bit de code suivant doit gérer cela
Cette boucle commence par sortir un caractère qui sera soit le 1er caractère lu par la première boucle, soit le caractère lu par l'itération précédente de cette boucle.
la source
Rubis,
646159 octetsÉconomisé 2 octets grâce à Value Ink.
la source
$&
est la dernière correspondance d'expressions rationnelles, utilisez-la au lieu dem
pour économiser 2 octets.Fenêtre Excel-VBA immédiate,
4445 octets (3635)1 octet ajouté pour supprimer la nouvelle ligne de fin
Ou pour 35 avec des espaces blancs de premier plan
1 octet enregistré grâce à @TaylorScott!
Les deux prennent l'entrée de la cellule A1, la sortie vers la fenêtre VBE Immediate
la source
Trim()
presque toutes les réponses numériques - et je ne reviendrais pasSet v=Range([A1]):?v.Column""&v.Row
sur votre solution actuelle;
quand le caractère suivantColumn
ne peut pas faire partie du nom de la routine. Je me demande s'il y a un seul personnage qui pourrait faire la même chose, probablement pas. Oui, j'aurais deviné que l'espace de tête serait acceptable pour la plupart des questions, mais pour celui-ci, je pense qu'il s'agit plutôt d'un "Imprimer cette chaîne exacte ". J'ai demandé (dernier commentaire sur la question) et on m'a dit qu'il n'y avait pas d'espace principal ni de nouvelle ligne.Lua, 127 octets
Quelques belles manipulations de cordes y aller, j'utilise une fonction qui n'est généralement jamais utilisée lors du golf dans lua: D. La meilleure façon de jouer au golf serait de trouver une autre façon d'itérer sur la partie colonne de l'entrée tout en étant capable de conserver la position de chaque lettre. Je n'ai pas ^^ '.
Essayez-le en ligne!
Explication
la source