Tìm danh tiếng SE của người dùng


10

Thử thách

Được cung cấp ID người dùng SE, xuất tổng số danh tiếng của họ từ tất cả các mạng Stack Exchange mà người dùng đã đăng ký.

Quy tắc

Nếu người dùng có 101 danh tiếng hoặc ít hơn trên một trang web, hãy tính nó bằng 0 trong tổng số.

Bạn không nên tính đại diện khu vực 51 hoặc cộng đồng ẩn !!

Công cụ rút ngắn URL không được phép.

Ví dụ

Có thể thay đổi

Người dùng 3244989 (Phân rã Beta)

14141

Người dùng 918086 (Dennis)

204892

Người dùng 11683 (Jon Skeet)

1029180

Chiến thắng

Mã ngắn nhất tính bằng byte thắng.

Câu trả lời:


1

curl, grep và awk, 106 byte

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

Nó bẩn nhưng dường như hoạt động tốt. Tôi không sử dụng awkthường xuyên vì vậy tôi sẽ không ngạc nhiên nếu có một cách để chơi golf grepvới nó.


3

Python 2 (có Yêu cầu), 149 Byte

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)

Tôi đã yêu cầu API, chuyển đổi API thành JSON, sau đó tóm tắt danh tiếng thông qua biểu thức trình tạo. Trình tạo không xóa tài khoản có ít hơn 101 danh tiếng.

Tín dụng để cải thiện mã: Jonathan Allan .


1

R với omer, 146 Byte

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

Yêu cầu các -rjson -rnet/http -ncờ. Đầu vào là từ STDIN (không có dòng mới). Ruby 2.4 là cần thiết cho 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)))

Thử nó

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>


Điều này có bỏ qua Khu vực 51 không?
Beta Decay

@BetaDecay, tôi nghĩ vậy. Tôi đang chỉnh sửa một câu trả lời vào câu trả lời của tôi bây giờ để giải thích.
Shaggy

Ồ đúng rồi, tôi không nghĩ nó quá đơn giản để lọc ra
Beta Decay

@BetaDecay, đó có phải là xác nhận rằng điểm cuối đó không bao gồm các trang A51 không?
Xù xì

Bạn có ý nghĩa gì bởi điểm cuối? : /
Beta Decay
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.