Wir sind also hoffentlich alle mit der A1-Zellennotation in der Tabellenkalkulation vertraut.
Es ist einfach eine alphanumerische Darstellung der Positionierung der Zelle innerhalb eines Gitters. Die Buchstaben stehen für die Spaltenposition der Zelle und die Zahl für die Zeile.
Der Buchstabenteil kann aus einem oder mehreren Buchstaben des englischen Alphabets mit 26 Buchstaben bestehen. Alle Buchstaben müssen Großbuchstaben sein. Diese ordnen Zahlen mithilfe der 26-adischen bijektiven Nummerierung zu. Der Teil 'number' kann aus einer beliebigen positiven Ganzzahl ungleich Null bestehen.
Die Herausforderung, ein Programm zu schreiben, das die A1-Notation einer Zelle als einzelne Zeichenfolge angibt, kann eine Zeichenfolge ausgeben, die die als Zahl dargestellte Spaltenposition, gefolgt von einem Leerzeichen und der Zeilennummer enthält.
Beispiele für Ein- / Ausgänge unten:
A1
>>1 1
B10
>>2 10
AC4
>>29 4
AAC753
>>705 753
F123
>>6 123
GL93
>>194 93
Dies ist meine erste Herausforderung, daher die relative Einfachheit und potenzielle Schwäche der Kriterien.
BEARBEITEN : Die Zeichenfolge muss aus Buchstaben, gefolgt von Zahlen bestehen und das Gewinnkriterium ist die kürzeste Codelänge (wenn das eine Sache sein kann).
BEARBEITEN : Bezogen auf diesen Vorgang wird jedoch der umgekehrte Vorgang mit einem anderen Startindex durchgeführt. Einige mögen argumentieren, dass diese Tatsache das verknüpfte Puzzle interessanter macht.
["A", "1"]
Antworten:
05AB1E ,
1211 BytesVerwendet die 05AB1E- Codierung. Probieren Sie es online!
quelle
Microsoft Excel, 43 Bytes.
Ich konnte mir nicht helfen, ich musste einfach das richtige Werkzeug für den Job verwenden. Übernimmt die Eingabe auf A1.
Testfälle
quelle
Microsoft Excel, 40 Bytes
Brasilianische portugiesische Sprachversion.
Übersetzte (und damit golfene) Version der ATaco-Lösung .
quelle
Python 2 ,
949173 Bytes-3 Bytes dank Jonathan Allan
-18 Bytes dank tsh
Probieren Sie es online!
Dies missbraucht die Arbeitsweise
.strip
und entfernt alle Ziffern mita=s(`3**39`)
denen`3**39`
es sich nur um eine kürzere Methode zum Generieren der Ziffern von0
bis handelt. Dadurch9
werden nur die Zeichena
der Zeichen von den Zahlen verwendet werdens(a)
quelle
strip
Eingabe der eindeutigen Zeichen3**39
erforderlich ist , daher sollte dies auch so sein.Google Sheets, 43 Bytes
Probieren Sie es online!
A1
ist die Eingabezelle. Hoffentlich funktioniert der obige Link. Ich habe noch nie zuvor Codegolf mit Google Sheets ausprobiert.quelle
=COLUMN(INDIRECT(A1))&" "&ROW(INDIRECT(A1
für 41 Bytes tun . Blatt füllt fehlende rechte Elternteile aus.JavaScript, 72 Bytes
quelle
Proton , 113 Bytes
Probieren Sie es online!
-19 Bytes Rod-Algorithmus borgen ( Note to self: add listcomps )
quelle
Dyalog APL, 44 Bytes
Probieren Sie es online!
quelle
(a~⎕D)
. Nachschlagen⎕A
statt⎕AV
. Mach stillschweigend. Tauschen Sie Argument von aus,
. Kommt auf nur 16 Bytes runter:~∘⎕A,⍨26⊥⎕A⍳~∘⎕D
Pyth - 31 Bytes
Erster Versuch, sehr naiv.
Probieren Sie es hier online aus .
quelle
Perl 5 , 35 + 1 (-p) = 36 Bytes
Probieren Sie es online!
Die
map
Anweisung behandelt die Spalte wie eine base26-Zahl und konvertiert sie in eine Dezimalzahl. Die Ersetzung ersetzt die Buchstaben durch die Zahlen. Die Eingabe und Ausgabe sind im-p
Flag enthalten.quelle
Mathematica, 108 Bytes
Die Operatorform
StringReplace
nimmt den alphabetischen Teilc
der Zeichenfolge, konvertiert ihn in eine Liste von Zeichencodes, subtrahiert64
von jedem Codepunkt, interpretiert das Ergebnis als Basis-26
Ganzzahl, konvertiert diese Ganzzahl in aString
und anschließend in einStringJoin
Leerzeichen, gefolgt vom numerischen Teilr
.Regex verwenden (auch
108
Bytes):quelle
ToCharacterCode@c-64
kann manchmal reduziert werden aufLetterNumber@c
.LetterNumber
schließt die Ausgabe jedoch nicht ein,List
wenn die Eingabe ein einzelnes Zeichen ist.Jelly ,
1615 BytesEin vollständiges Programm, das den String als Argument akzeptiert und das Ergebnis ausgibt
Probieren Sie es online!
Wie?
Hinweis: Die Konvertierung aus einer Liste von Zahlen mit dem Basisumwandlungsatom
ḅ
ermöglicht, dass Orte außerhalb des erwarteten Bereichs liegen. Daher wird die Konvertierung aus[2,26,1]
("BZA"
) mit 2 × 26 2 + 26 × 26 1 + 1 × 26 0 =ḅ26
berechnet 2029 obwohl die "erwartete" Darstellung gewesen wäre .[3,0,1]
quelle
Mathematica,
77726968 BytesNimmt eine Liste von Zeichen.
Probieren Sie es auf Wolfram Sandbox
Verwendung
oder
Erläuterung
In der Eingabe ersetzen ...
Eine Liste , die zwei Sequenzen
a
undb
(mit 1 oder mehreren Elementen) ist , wobeib
nur der digit Zeichen besteht ... (Mathematica verwendet lazy Musteranpassung, also keine Prüfung für erforderlicha
)in...
Stellen Sie
f
zu Ziffer-to-Integer - Umwandlungsfunktion.Konvertieren Sie
a
in Buchstaben (a -> 1, b -> 2 usw.).Konvertieren Sie das Obige von der Basis 26 in eine Dezimalzahl und konvertieren Sie es
b
in eine Dezimalzahl.quelle
Haskell, 67 Bytes
Probieren Sie es online aus.
quelle
Netzhaut , 85 Bytes
Probieren Sie es online! Erläuterung:
Trennen Sie die Buchstaben voneinander und die endgültige Nummer.
Konvertieren Sie die Buchstaben in Dezimalzahlen.
Wandle alles in Einzahl um.
Während es mindestens drei Zahlen gibt, multiplizieren Sie die erste mit 26 und addieren Sie sie zur zweiten.
Wandle alles in Dezimal um.
quelle
Rubin ,
50,48 + 1 =5149 BytesVerwendet die
-p
Flagge. -2 Bytes vonm-chrzan
.Probieren Sie es online!
quelle
i=i*26+b-64
Spart 2 Bytes.> <>, 42 Bytes
Probieren Sie es online
Erläuterung:
Die obige Schleife liest die erste Nummer des Ziffernteils ein (z. B. '3' in "AB34"), bevor sie unterbrochen wird, und hat bereits 64 davon subtrahiert, sodass sich das nächste Codebit damit befassen muss
Diese Schleife beginnt mit der Ausgabe eines Zeichens, das entweder das erste von der ersten Schleife eingelesene Zeichen oder das von der vorherigen Iteration dieser Schleife eingelesene Zeichen ist.
quelle
Ruby,
646159 BytesDank Value Ink 2 Bytes gespart.
quelle
$&
ist die letzte Regex-Übereinstimmung, verwenden Sie sie alsom
, um 2 Bytes zu speichern.Excel-VBA-Direktfenster,
4445 Bytes (3635)1 Byte hinzugefügt, um den Zeilenumbruch zu unterdrücken
Oder für 35 mit führenden Leerzeichen
Dank @TaylorScott 1 Byte gespart!
Beide nehmen Eingaben von Zelle A1 entgegen und geben sie an das VBE-Direktfenster aus
quelle
Trim()
nahezu aller numerischen Antworten erzwingen würde - und darauf würde ich nichtSet v=Range([A1]):?v.Column""&v.Row
über Ihre aktuelle Lösung;
wenn das folgende ZeichenColumn
nicht Teil des Routinennamens sein kann. Ich frage mich, ob es einen einzelnen Charakter gibt, der das Gleiche tun könnte, wahrscheinlich nicht. Ja, ich hätte gedacht, dass das führende Leerzeichen für die meisten qus akzeptabel ist, aber für dieses ist es meiner Meinung nach eher eine " genau diese Zeichenfolge drucken ". Ich habe gefragt (letzter Kommentar zu Frage) und es wurde mir kein führendes Leerzeichen oder Zeilenumbruch mitgeteilt.Lua, 127 Bytes
Einige nette Saitenmanipulationen, ich benutze einige Funktionen, die normalerweise beim Golfen in lua: D nicht verwendet werden. Der beste Weg, um Golf zu spielen, besteht darin, einen anderen Weg zu finden, um über den Spaltenteil der Eingabe zu iterieren, während die Position jedes Buchstabens beibehalten werden kann. Ich habe nicht ^^ '.
Probieren Sie es online!
Erläuterung
quelle