Dengan ID Pengguna PPCG, berikan nama pengguna saat itu.
Contohnya
Input -> Output
61563 -> MD XF
2 -> Geoff Dalgas
12012 -> Dennis
foo ->
-3 ->
Aturan
- Input / output dapat diambil melalui cara apa pun yang diizinkan.
- Keluaran harus berupa nama pengguna lengkap dengan kapitalisasi dan spasi yang tepat, tidak lebih dan tidak kurang.
- Jika input tersebut bukan UserID yang valid, atau pengguna tidak ada, program Anda seharusnya tidak menghasilkan apa-apa atau output kesalahan.
- Program Anda harus bekerja untuk setiap pengguna yang valid, bahkan yang dibuat setelah tantangan ini.
- Program Anda tidak harus bekerja untuk pengguna Komunitas.
- Program Anda tidak harus bekerja untuk pengguna yang dihapus.
- Penyingkat URL tidak diizinkan.
Mencetak gol
Kode terpendek di setiap bahasa menang.
Okx
. Ya, itu nama saya.xxx.stackexchange.com/u/123
pengalihan kexxx.stackexchange.com/users/123
Jawaban:
05AB1E ,
3534 byteTidak berfungsi online karena pembatasan internet.
Kode
Penjelasan
String yang dikompresi:
mendorong string berikut:
Sedangkan
<input>
input pengguna. Setelah ini, kami membaca semua data menggunakan.w
dan melakukan beberapa trik manipulasi string pada data:Ketika dijalankan secara lokal, saya mendapatkan output berikut:
sumber
„ -¡¬
.Bash,
120112106102 102807674 byte-8 byte karena
wget
cukup pintar untuk mengarahkan HTTP ke HTTPS bila perlu-6 byte berkat
sed
saran lain dari Sapi dukun-26 byte berkat Trauma Digital
-4 byte berkat Gilles -
codegolf.stackexchange.com/u/123
pengalihan-2 byte berkat
wget
bendera jawaban Digital TraumaTidak ada tautan TIO karena arena TIO tidak dapat mengakses internet.
Terima kasih atas jawaban di sini dan orang-orang dalam obrolan untuk membantu saya dengan ini. Saya menggunakan pendekatan yang mirip dengan HyperNeutrino.
wget -qO- codegolf.stackexchange.com/users/$1
mengunduh halaman profil pengguna dan mencetak file ke STDOUT.-q
apakah itu dengan tenang (tidak ada informasi kecepatan).sed -nr 's/.*User (.*) -.*/\1/p'
mencari string pertamaUser<space>
, lalu mencetak hingga mencapai akhir nama, ditemukan menggunakansed
sihir.Jawaban sebelumnya yang saya tulis lebih mandiri (102 byte):
wget codegolf.stackexchange.com/users/$1 2>y
menyimpan HTML profil pengguna ke file berjudul dengan UserID mereka dan kesedihan STDERR key
.cat $1
pipa file ke bagian-bagian yang memotong HTML yang tidak berguna.sed '6!d'
(di tempathead -6 | tail -1
) mendapat baris keenam dengan sendirinya.cut -c 13-
menghapus 13 karakter pertama, mendapatkan nama pengguna untuk memulai karakter pertama dari string.cut -d '&' -f1
memotong semuanya setelah&
. Ini bergantung pada fakta bahwa ampersand tidak diizinkan berada dalam nama pengguna, atau judul HTML.Sekarang talinya
<username> - Programming Puzzles
sed 's/.\{23\}$//'
adalah saran dari dukun sapi untuk menghapus 15 byte terakhir file. Ini mendapatkan nama pengguna dengan sendirinya.Berikut ini skrip bash lengkap.
sumber
...TIO arenas can't access the internet
Mereka dapat, itulah cara Anda dapat mengaksesnya. : P Kode yang dikirimkan pengguna tidak diizinkan mengakses internet.</nitpick>
Digital Trauma - Progr
sed
bytecount kedua .Utilitas Bash + GNU, 66
Menggunakan
-P
rasa CRE regex untuk melakukan\K
reset mulai pertandingan untuk penyaringan output yang jauh lebih pendek.Jika sistem Anda sudah
curl
diinstal, kami dapat menggunakan saran @Gilles ':Utilitas Bash + curl + GNU, 64
sumber
O-
?-O-
mengirimkan output yang diunduh ke STDOUT alih-alih file, sehingga hanya dapat disalurkan kegrep
grep -Po '"User \K[^"]+'
untuk menghemat 3 byte.curl -L
lebih pendek dariwget -qO-
. Anda bisa menggunakan/u
bukan/users
.Permintaan Python 2 +, 112 byte
catatan
begitu SE berjalan sepenuhnya
https
,http
kebutuhan harus diubahhttps
, yang akan menghasilkan 113 byte.Awal profil pengguna terlihat seperti ini:
Nama pengguna dimulai pada indeks 49 dan ampersand muncul 23 karakter di sebelah kanan tempat berakhirnya (
- Programming Puzzles
)-3 byte terima kasih kepada StepHen / Mego dengan menghapus
re
impor-1 byte yang tidak digunakan berkat Uriel
sumber
re
sehingga Anda dapat menjatuhkan 3 bytehttp
untuk saat ini, tetapi itu akan dihapus pada akhirnya ketika SE menjalankan HTTPS penuh.from requests import*
dan dropr.
for 113 bytesJavaScript (ES6),
11175 byteHanya berfungsi saat dijalankan melalui domain PPCG. Mengembalikan
Promise
objek yang berisi nama pengguna.sumber
i=>fetch(`/users/${i}`).then(r=>r.text()).then(s=>/"User ([^"]+)/.exec(s)[1])
i=>$.get(`/users/${i}`).done(s=>alert(/"User ([^"]+)/.exec(s)[1]))
fetch
untuk menyimpan 2 bytefetch
memasukkan halaman pengguna seperti itu tetapi berpikir itu mungkin mendorong keberuntungan saya. Tetapi mengingat Anda telah menyarankannya juga, saya akan mengeditnya. Apakah browser saat ini mendukung.done()
? Saya mengujinya dengan cepat di Chrome & FF tetapi tidak berhasil di sana.Swift 3 , 233 byte
Sampel berjalan:
sumber
Python 2 , 116 byte
Hanya berpikir itu bagus untuk memiliki jawaban perpustakaan standar (itu sebenarnya cukup panjang).
Ketika SE berjalan sepenuhnya
https
, kita perlu menambahkan 1 byte lagi, beralihurlopen('http://...
denganurlopen('https://...
.sumber
Secara kubik + Bash,
165413361231 byte-423 bytes terima kasih kepada TehPers
Ini membutuhkan tiga skrip Cubically (bernama
1
,2
dan3
) dan 1 skrip bash.Skrip Cubically sangat panjang karena saya belum memikirkan cara yang baik untuk mengimplementasikan loop.
Bash (84 byte):
Ini memipakan skrip Cubically pertama ke dalam
wget
, kemudian file yang disimpan ke dalam skrip Cubically kedua, kemudian membalikkan output itu, menyalurkannya ke skrip Cubically ketiga, kemudian membalikkannya.1
(385 byte):Ini mencetak
https://codegolf.stackexchange.com/users/
, kemudian bilangan bulat input pertama.2
(680505 byte):Ini membaca data yang tidak perlu dari file yang disimpan sebagai input, lalu mencetak hingga ampers dan masuk
Programming Puzzles & Code Golf
.~7@7
membaca karakter dan mencetaknya.F1R1
dan:5=7
periksa apakah inputnya adalah ampersand.&6
keluar jika itu.~7@7:5=7&6
diulang 45 kali karena ada 15 byte data yang tidak perlu dan nama pengguna StackExchange maksimal 30-byte.3 (
505446342 byte):Sangat mirip dengan skrip terakhir, ini membaca beberapa byte pertama yang tidak perlu, kemudian
cat
s sampai EOF. Ini juga berfungsi karena nama pengguna maksimal SE.sumber
:0-1/1
bukan:4+4/1-1
? Juga, contoh pertama itu bisa saja-1/1
karena notepad mulai dari 0./bin/r
ditimpa.F1R1
di awal, lalu gunakan+5
seluruh program sebagai pengganti+2/1+4
PHP, 163 byte
sumber
Powershell,
165142137127 byte232838 byte disimpan berkat AdmBorkBork !Membuat file dengan nama
0
efek samping.Bekerja dengan membuka halaman web yang tepat, dan memilih elemen "nama pengguna kartu", lalu mengekstrak teks yang tepat dari innerhtml.
Pengujian
sumber
Python +
requests
, 126 byteMengakses API lebih lama daripada membaca halaman sebenarnya ...
sumber
requests
: pJelly , 37 byte
Port jawaban Python 2 HyperNeutrino - berikan kredit!
Tautan monadik yang mengambil nomor dan mengembalikan daftar karakter; sebagai program lengkap mencetak hasilnya.
Catatan: tidak yakin mengapa hasil
ŒG
harus dipaksa menjadi string (dilakukan di sini bersamaṾ
): /Bagaimana?
codegolf.stackexchange.com/users/
sumber
Stack Exchange Data Explorer , 47 byte
Cobalah online!
sumber
Mathematica, 126 byte
memasukkan
keluaran
sumber
Stratos , 22 byte
Cobalah!
Penjelasan:
sumber