ค้นหาชื่อเสียง SE ของผู้ใช้


10

ท้าทาย

กำหนด ID ผู้ใช้ SE ให้แสดงผลรวมของชื่อเสียงของพวกเขาจากเครือข่ายสแต็ค Exchange ทั้งหมดที่ผู้ใช้ลงชื่อสมัครใช้

กฎระเบียบ

หากผู้ใช้มีชื่อเสียง 101 หรือน้อยกว่าในเว็บไซต์ให้นับเป็นศูนย์ในผลรวม

คุณไม่ควรนับ Area 51 หรือชุมชนที่ถูกซ่อน !!

ตัวย่อ URL ไม่ได้รับอนุญาต

ตัวอย่าง

เปลี่ยนหัวข้อ

ผู้ใช้ 3244989 (การสลายตัวเบต้า)

14141

ผู้ใช้ 918086 (เดนนิส)

204892

ผู้ใช้ 11683 (Jon Skeet)

1029180

การชนะ

รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ

คำตอบ:


1

curl, grep และ awk, 106 ไบต์

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

มันสกปรก แต่ดูเหมือนว่าจะทำงานได้ดี ฉันไม่ได้ใช้awkบ่อยดังนั้นฉันจะไม่แปลกใจถ้ามีวิธีตีกอล์ฟgrepด้วย


3

Python 2 (พร้อมคำขอ), 149 ไบต์

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)

ฉันขอ API แปลง API เป็น JSON แล้วรวมชื่อเสียงผ่านนิพจน์ตัวสร้าง เครื่องกำเนิดไฟฟ้าจะลบบัญชีที่มีชื่อเสียงน้อยกว่า 101 รายการ

สินเชื่อเพื่อการปรับปรุงรหัส: โจนาธานอัลลัน


1

R กับ 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 ไบต์

ต้องใช้-rjson -rnet/http -nธง อินพุตมาจาก STDIN (ไม่มีการขึ้นบรรทัดใหม่) ทับทิม 2.4 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 ไบต์

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)))

ลองมัน

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>


สิ่งนี้ละเว้นพื้นที่ 51 หรือไม่
Beta Decay

@BetaDecay ฉันคิดอย่างนั้น ฉันกำลังแก้ไขข้อแม้เป็นคำตอบของฉันตอนนี้เพื่ออธิบาย
Shaggy

โอ้ใช่ฉันไม่คิดว่ามันจะเป็นเรื่องง่ายที่จะกรองออก
Beta Decay

@BetaDecay เป็นการยืนยันว่าปลายทางนั้นไม่รวมไซต์ A51 หรือไม่
Shaggy

คุณหมายถึงอะไรโดยจุดสิ้นสุด? : /
เบต้าสลายตัว
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.