Jadi semoga kita semua akrab dengan notasi sel Spreadsheet 'A1'.
Ini hanyalah representasi alfanumerik dari posisi sel tersebut di dalam kisi. Huruf mewakili posisi kolom sel, dan nomor mewakili baris.
Bagian 'huruf' dapat terdiri dari 1 atau lebih huruf dari 26 huruf alfabet Inggris, yang semuanya harus huruf kapital. Peta ini ke nomor melalui penggunaan numerik bijective 26-adic. Bagian 'angka' dapat terdiri dari bilangan bulat positif, bukan nol.
Tantangannya, menulis sebuah program yang diberi notasi A1 sel apa pun sebagai string tunggal, dapat menampilkan string yang berisi posisi kolom yang direpresentasikan sebagai angka, diikuti oleh spasi dan kemudian nomor baris.
Contoh Input / Output di bawah ini:
A1
>>1 1
B10
>>2 10
AC4
>>29 4
AAC753
>>705 753
F123
>>6 123
GL93
>>194 93
Ini adalah tantangan pertama saya, karenanya kesederhanaan relatif dan potensi kemiskinan dari kriteria.
EDIT : String harus berupa huruf diikuti oleh angka dan kriteria yang menang adalah panjang kode terpendek (jika itu bisa berupa hal)
EDIT : Terkait dengan ini tetapi melakukan proses sebaliknya dengan indeks awal yang berbeda. Beberapa orang mungkin berpendapat bahwa fakta ini membuat teka-teki terkait lebih menarik.
["A", "1"]
Jawaban:
05AB1E ,
1211 byteMenggunakan penyandian 05AB1E . Cobalah online!
sumber
Microsoft Excel, 43 Bytes.
Saya tidak bisa menahan diri, saya hanya harus menggunakan alat yang tepat untuk pekerjaan itu. Mengambil input pada A1.
Uji Kasus
sumber
Microsoft Excel, 40 byte
Versi bahasa Portugis Brasil.
Versi solusi ATaco yang diterjemahkan (dan karena golf) .
sumber
Python 2 ,
949173 byte-3 byte terima kasih kepada Jonathan Allan
-18 byte terima kasih kepada tsh
Cobalah online!
Pelanggaran ini cara yang
.strip
bekerja, menghapus semua digit wtiha=s(`3**39`)
mana`3**39`
adalah cara yang lebih pendek untuk menghasilkan angka dari0
ke9
, ini akan menyimpan hanya chars padaa
yang akan digunakan untuk mengupas karakter dari angka-angka padas(a)
sumber
strip
masukan untuk menjadi karakter yang unik, jadi3**39
harus melakukan pekerjaan yang sama.Google Sheets, 43 byte
Cobalah online!
A1
adalah sel input. Semoga tautan di atas berfungsi, saya belum pernah mencoba kode golf dengan Google Sheets sebelumnya.sumber
=COLUMN(INDIRECT(A1))&" "&ROW(INDIRECT(A1
selama 41 byte. lembar mengisi parens kanan yang hilang.JavaScript, 72 byte
sumber
Proton , 113 byte
Cobalah online!
-19 byte meminjam algoritma Rod ( catatan untuk diri sendiri: tambahkan listcomps )
sumber
Dyalog APL, 44 byte
Cobalah online!
sumber
(a~⎕D)
. Cari⎕A
alih-alih⎕AV
. Buat diam-diam. Pertukaran argumen,
. Turun menjadi hanya 16 byte:~∘⎕A,⍨26⊥⎕A⍳~∘⎕D
Pyth - 31 byte
Upaya pertama, sangat naif.
Cobalah online di sini .
sumber
Perl 5 , 35 + 1 (-p) = 36 byte
Cobalah online!
The
map
pernyataan memperlakukan kolom seperti nomor base26 dan bertobat itu ke desimal. Substitusi menggantikan huruf dengan angka. Input dan output tersirat dalam-p
flag.sumber
Mathematica, 108 byte
Bentuk operator
StringReplace
yang mengambil bagian alfabetc
dari string, mengubahnya menjadi daftar kode karakter, mengurangi64
dari setiap titik kode, menginterpretasikan hasilnya sebagai26
bilangan bulat, mengonversi bilangan bulat itu menjadiString
, kemudianStringJoin
ruang yang diikuti oleh bagian numerikr
.Menggunakan regex (juga
108
byte):sumber
ToCharacterCode@c-64
terkadang dapat dikurangi menjadiLetterNumber@c
.LetterNumber
tidak membungkus outputList
ketika input adalah karakter tunggal.Jelly ,
1615 byteProgram lengkap yang menerima string sebagai argumen dan mencetak hasilnya
Cobalah online!
Bagaimana?
Catatan: konversi dari daftar angka menggunakan atom konversi dasar
ḅ
memungkinkan tempat berada di luar rentang yang diharapkan, jadi konversi dari, katakanlah,[2,26,1]
("BZA"
) menggunakanḅ26
dihitung sebagai 2 × 26 2 + 26 × 26 1 + 1 × 26 0 = 2029 meskipun representasi "yang diharapkan" seharusnya[3,0,1]
.sumber
Mathematica,
77726968 byteMengambil daftar karakter.
Cobalah di Wolfram Sandbox
Pemakaian
atau
Penjelasan
Di input ganti ...
Daftar yang berisi dua urutan
a
danb
(dengan 1 atau lebih elemen), di mana hanyab
terdiri dari karakter digit saja ... (Mathematica menggunakan pencocokan pola yang malas, jadi tidak diperlukan pemeriksaan untuka
)ke...
Setel
f
ke fungsi konversi digit-ke-integer.Konversikan
a
ke angka huruf (a -> 1, b -> 2, dll).Konversi di atas dari basis-26 ke desimal, dan konversi
b
ke desimal.sumber
Haskell, 67 byte
Cobalah online.
sumber
Retina , 85 byte
Cobalah online! Penjelasan:
Pisahkan surat dari satu sama lain dan nomor terakhir.
Ubah huruf menjadi desimal.
Konversikan semuanya menjadi unary.
Meskipun setidaknya ada tiga angka, kalikan yang pertama dengan 26 dan tambahkan ke yang kedua.
Konversikan semuanya menjadi desimal.
sumber
Ruby ,
5048 + 1 =5149 byteMenggunakan
-p
bendera. -2 byte darim-chrzan
.Cobalah online!
sumber
i=i*26+b-64
menghemat 2 byte.> <>, 42 Bytes
Cobalah secara Online
Penjelasan:
Loop di atas akan membaca angka pertama dari bagian bilangan (mis. '3' dalam "AB34") sebelum putus, dan akan sudah dikurangi 64 dari itu, jadi bit kode berikutnya harus berurusan dengan itu
Loop ini dimulai dengan mengeluarkan karakter yang akan menjadi karakter pertama yang dibaca oleh loop pertama, atau karakter yang dibaca oleh iterasi sebelumnya dari loop ini.
sumber
Rubi,
646159 byteDisimpan 2 byte berkat Value Ink.
sumber
$&
adalah pertandingan regex terakhir, jadi gunakan itu bukanm
untuk menyimpan 2 byte.Jendela langsung Excel-VBA,
4445 Bytes (3635)1 byte ditambahkan untuk menekan baris baru
Atau untuk 35 dengan spasi putih terkemuka
1 byte disimpan berkat @TaylorScott!
Keduanya mengambil input dari sel A1, output ke jendela VBE Immediate
sumber
Trim()
pada hampir semua jawaban numerik - dan pada itu saya tidak akan menggunakanSet v=Range([A1]):?v.Column""&v.Row
solusi Anda saat ini;
ketika karakter berikutColumn
tidak dapat menjadi bagian dari nama rutin. Saya ingin tahu apakah ada satu karakter yang dapat melakukan hal yang sama, mungkin tidak. Ya, saya akan menduga bahwa ruang terdepan akan dapat diterima untuk sebagian besar qus, tetapi untuk yang satu ini saya pikir ini lebih merupakan "Cetak string yang tepat ini ". Saya memang bertanya (komentar terakhir pada pertanyaan) dan diberitahu tidak ada spasi atau baris baru.Lua, 127 Bytes
Beberapa manipulasi string bagus terjadi di sana, saya menggunakan beberapa fungsi yang biasanya tidak pernah digunakan saat bermain golf di lua: D. Cara terbaik untuk bermain golf ini adalah dengan menemukan cara lain untuk beralih pada bagian kolom dari input sambil tetap mempertahankan posisi setiap huruf. Saya tidak ^^ '.
Cobalah online!
Penjelasan
sumber