Temukan Reputasi SE Pengguna


10

Tantangan

Diberikan ID pengguna SE, hasilkan jumlah reputasi mereka dari seluruh jaringan Stack Exchange yang telah didaftar pengguna.

Aturan

Jika seorang pengguna memiliki 101 atau kurang reputasi di suatu situs, hitunglah itu sebagai nol.

Anda tidak boleh menghitung perwakilan Area 51 atau komunitas tersembunyi !!

Penyingkat URL tidak diizinkan.

Contohnya

Dapat berubah sewaktu-waktu

Pengguna 3244989 (Peluruhan Beta)

14141

Pengguna 918086 (Dennis)

204892

Pengguna 11683 (Jon Skeet)

1029180

Kemenangan

Kode terpendek dalam byte menang.

Jawaban:


1

curl, grep and awk, 106 bytes

curl http://api.stackexchange.com/users/$1/associated|grep -o n\"[^,]*|awk -F: '$2>101{s+=$2}END{print s}'

Itu kotor tetapi tampaknya bekerja dengan baik. Saya tidak awksering menggunakan jadi saya tidak akan terkejut jika ada cara untuk bermain golf grepdengan itu.


3

Python 2 (dengan Permintaan), 149 Bytes

from requests import*
lambda i,r="reputation":sum(u[r]for u in get("http://api.stackexchange.com/users/"+i+"/associated").json()["items"]if u[r]>101)

Saya meminta API, mengonversikan API ke JSON, lalu merangkum reputasinya melalui ekspresi generator. Generator tidak menghapus akun dengan reputasi kurang dari 101.

Kredit untuk meningkatkan kode: Jonathan Allan .


1

R dengan httr, 146 Bytes

library(httr)
a=sapply(content(GET(paste0("http://api.stackexchange.com/users/",readline(),"/associated")))$items,'[[','reputation')
sum(a[a>101])

0

Ruby 2.4, 136 + 20 = 156 byte

Membutuhkan -rjson -rnet/http -nbendera. Masukan dari STDIN (tidak ada baris baru). Ruby 2.4 diperlukan untuk sum.

p JSON.parse(Net::HTTP.get URI"http://api.stackexchange.com/users/#$_/associated")["items"].map{|i|i["reputation"]}.select{|i|i>101}.sum

0

JavaScript (ES6), 148 143 142 141 byte

u=>fetch(`//api.stackexchange.com/users/${u}/associated`).then(j=>j.json(s=0)).then(i=>(i.items.map(r=>s+=(r=r.reputation)>101&&r),alert(s)))

Cobalah

f=

u=>fetch(`//api.stackexchange.com/users/${u}/associated`).then(j=>j.json(s=0)).then(i=>(i.items.map(r=>s+=(r=r.reputation)>101&&r),alert(s)))

i.addEventListener("submit",e=>{e.preventDefault();(v=+i.firstChild.value)&&f(v)})
<form id=i><input type=number><button>Calc.</button></form>


Apakah ini mengabaikan Area 51?
Beta Decay

@ BetaDecay, saya kira begitu. Saya sedang mengedit peringatan menjadi jawaban saya sekarang untuk menjelaskan.
Shaggy

Oh benar, saya tidak berpikir itu akan sangat mudah untuk disaring
Beta Decay

@ BetaDecay, apakah itu konfirmasi bahwa titik akhir itu tidak termasuk situs A51?
Shaggy

Apa yang Anda maksud dengan titik akhir? : /
Beta Decay
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.