โจทย์ AI Native แยกตามระดับ

ระดับ 2 · ประยุกต์ · สถานะและขั้นตอนงาน

ตัดเว็บฮุกซ้ำและรวมยอด

ใช้แต่ละรหัสเหตุการณ์ครั้งเดียวและรวมยอดบัญชี

คำอธิบายโจทย์

เขียน function solution(events) ข้อมูลเข้าและผลลัพธ์เป็นค่า JSON ห้ามแก้ไขอาร์เรย์หรือออบเจ็กต์ข้อมูลเข้า ไม่รองรับไลบรารีภายนอก เครือข่าย หรือฟังก์ชันแบบอะซิงโครนัส events:{id:string,account:string,delta:integer}[]. Accept only the first occurrence of each case-sensitive event ID, even if later account/delta differs. Return {accepted:boolean[],balances:[{account,balance}]}. Aggregate accepted deltas per account, include zero balances, and sort accounts using JavaScript string comparisons. All sums are safe integers. ขอบเขตข้อมูล: อาร์เรย์อินพุตแต่ละชุดมีไม่เกิน 50,000 รายการ สตริงไม่เกิน 1,000 ตัวอักษร ตัวเลขต้องเป็นค่าจำกัด จำนวนเต็มและผลรวมจำนวนเต็มอยู่ในช่วงจำนวนเต็มที่ปลอดภัยของ JavaScript ชนิดและความถูกต้องอื่นเป็นไปตามกฎด้านบน

ตัวอย่างข้อมูลเข้าและผลลัพธ์

ตัวอย่าง 1

อาร์กิวเมนต์ของฟังก์ชัน

[
  [
    {
      "id": "x",
      "account": "a",
      "delta": 10
    },
    {
      "id": "x",
      "account": "a",
      "delta": 99
    }
  ]
]

ค่าที่ส่งคืน

{
  "accepted": [
    true,
    false
  ],
  "balances": [
    {
      "account": "a",
      "balance": 10
    }
  ]
}
ตัวอย่าง 2

อาร์กิวเมนต์ของฟังก์ชัน

[
  [
    {
      "id": "x",
      "account": "b",
      "delta": 2
    },
    {
      "id": "y",
      "account": "a",
      "delta": -3
    }
  ]
]

ค่าที่ส่งคืน

{
  "accepted": [
    true,
    true
  ],
  "balances": [
    {
      "account": "a",
      "balance": -3
    },
    {
      "account": "b",
      "balance": 2
    }
  ]
}
ตัวอย่าง 3

อาร์กิวเมนต์ของฟังก์ชัน

[
  [
    {
      "id": "a",
      "account": "A",
      "delta": 1
    },
    {
      "id": "b",
      "account": "a",
      "delta": 1
    }
  ]
]

ค่าที่ส่งคืน

{
  "accepted": [
    true,
    true
  ],
  "balances": [
    {
      "account": "A",
      "balance": 1
    },
    {
      "account": "a",
      "balance": 1
    }
  ]
}
การฝึกไม่ใช้แต้ม ไม่มีเวลาจำกัดหรือจำนวนส่งที่จำกัด ใช้ AI และค้นหาได้เต็มที่ เข้าสู่ระบบเพื่อรันตัวอย่าง หรือทดสอบในเครื่อง

71 / 20,000 ตัวอักษร

เพิ่มการทดสอบเอง · ไม่บังคับ

ป้อนอาร์กิวเมนต์เป็นอาร์เรย์ JSON ตามลำดับ events จะรันร่วมกับสามตัวอย่าง

บันทึกสองไฟล์ไว้ในโฟลเดอร์เดียวกันแล้วรันคำสั่งนี้ด้วย Node.js ดูผลแต่ละตัวอย่างในช่อง checks

node verify-webhook-idempotency.mjs
문의하기

서비스명: 포트포올
문의는 운영자에게 이메일로 전송됩니다.

이메일과 문의 내용은 답변을 위해 운영자 및 메일 발송 서비스로 전송됩니다. 비밀번호·결제정보·민감한 개인정보는 입력하지 마세요.