Ini sederhana. Dengan diberi input nomor, kembalikan skor nama dan reputasi pengguna Stack Overflow dengan ID yang diberikan . Program Anda dapat mengasumsikan bahwa selalu diberikan ID pengguna yang valid dan ada.
Sebagai contoh: diberi input 764357
(yang merupakan ID pengguna saya di StackOverflow) program akan kembali LegoStormtroopr 3,088
(kurang-lebih) itu mungkin berubah.
Anda mendapatkan URL: " /programming//users/ " atau " http://api.stackexchange.com/2.1/users/ " gratis, sehingga skor Anda length of your program - 31 or 39
, tergantung pada URL yang Anda gunakan - tapi menyatakan mana itu . Ini mencegah orang menyalahgunakan penyingkat URL.
sunting: Dan tidak ada panggilan API khusus yang meminta Stack Overflow, dan hanya mengembalikan nama dan skor. Tetapi jika Anda tahu tentang API resmi, maka itu benar-benar sah.
edit2: Jika Anda membutuhkan input contoh: Saya telah memberikan ID saya di bawah ini, jangan ragu untuk menambahkan ID Anda sendiri, nama pengguna dan skor di bawah ini untuk membantu orang lain. Perhatikan lagi, ini untuk situs Stack Overflow utama.
764357 returns LegoStormtroopr 3,088
sumber
http://api.stackexchange.com/2.1/users/
juga "bebas" untuk menghindari menghukum pengguna API?site=stackoverflow
bagian secara gratis juga?Jawaban:
Script shell:
6451 karakterContoh dijalankan:
(Perhatikan bahwa Anda harus menekan
^D
setelah mengetikkan input secara interaktif. Atau hanya mengirimnya ke perintah.)sumber
Ruby:
8470 karakterContoh dijalankan:
sumber
s[/me">(.+)</,1],s[/ation".*?([\d,]+)/,1]
tampaknya berfungsigrep
akan menampilkan lebih banyak pertandingan hanya "ation" ".)-ropen-uri
opsi. (Ini wajib dan termasuk dalam jumlah karakter.)Python 2.7 - 119
(150 - 31)
Tanpa regex:
sumber
Python 3, 117
117 = 148 - 31
Saya pikir pencarian kode sumber HTML biasa tidak akan menghasilkan solusi yang kuat. Misalnya, beberapa hal aneh di profil seseorang dapat merusak solusi Anda. Jadi saya ingin mencari menggunakan penyeleksi CSS.
sumber
Javascript 217
Berikut adalah Versi Javascript yang tidak disatukan menggunakan api resmi dengan JSONP, untuk memulai. Menggunakan url akan membutuhkan XHR, yang bisa sangat bertele-tele, jika saya menemukan waktu saya akan mencoba versi yang lebih golf.
sumber
Perl 5 (dengan Mojolicious), 87 - 31 = 56 byte
Contoh dijalankan:
Dapat dibaca & bersih: 128 - 31 = 97 byte
Contoh dijalankan:
sumber
-Mojo
termasuk dalam hitungan? Harganya 4 karakter.-ropen-uri
. Namun, saya senang memasukkannya jika komentar Anda mendapat beberapa suara sebagai indikasi bahwa komunitas ingin menghitungnya.perl
's-p
opsi biasanya dihitung 1. Berdasarkan itu saya hitung-Mojo
+4.R: 150-31 = 119
Cukup dengan mudah mengambil baris pertama yang berisi
h1
(untuk nama) dan=re
(untuk skor) menggunakangrep
dengan argumenvalue=TRUE
(di siniv=T
) dan kemudian membagi string (menggunakanstrsplit
pada karakter>
dan<
. Tidak nyaman itu menanyakan halaman dua kali (maka dua "Baca n item" peringatan) tapi itu lebih pendek.sumber
Tcl, (231 - 39) 192
bukan cara terpendek, tetapi menggunakan API resmi
Dan dalam semangat pertanyaan aslinya :
Temukan pengguna dengan reputasi itu
sumber
ShortScript CoffeeScript: 143 karakter (182 - 39)
Ini bergantung pada API yang selalu mengembalikan kunci objek dalam urutan yang sama, tetapi mengurangi 7 karakter.
CoffeeScript: 150 karakter (189 - 39)
(Perhatikan bahwa program meminta Anda untuk "tidak ditentukan" - ia meminta ID Pengguna.)
sumber
R - 84
84 = 115 - 31
Simulasi:
sumber
101100 - CoffeeScript dengan jQueryIni biola ; ketahuilah bahwa itu meminta Anda ketika Anda pertama kali membuka halaman, jadi siapkan ID, atau tekan Jalankan lagi.
Atau kita bisa menjadi super hacky untuk menyelamatkan seluruh karakter!
sumber
Python 2.7 - 112
112 = 143 - 31
Versi pendek dan baru yang menggunakan beberapa ide dari Steven Rumbalski menjawab , sementara masih menggunakan Regex.
133 = 164 - 31
Ini adalah versi dasar untuk orang-orang untuk bekerja, tapi saya yakin orang bisa menjadi lebih pendek.
sumber
http://stackoverflow.com/users/12340
adalah 404.499214
bukannya12340
GNU Awk: 217 karakter
Hanya karena GNU
awk
mendukung TCP secara native: tidak ada modul / pustaka / alat eksternal.Contoh dijalankan:
sumber