HardPro challengePythonJavaScriptTypeScript

Lease-Based Distributed Lock

Node.jsDistributedConcurrency

Single-key lock with TTL. solve(ttl, ops) runs ops:

  • ['acquire', now, owner] → returns true if lock free or expired; sets lock to owner.
  • ['release', now, owner] → returns true if releaser owns the (non-expired) lock; clears it.
  • ['renew', now, owner] → returns true if owner still holds (non-expired); refreshes TTL.

Returns array of booleans for each op.

Sample tests

Test #1B denied
Input: [100,[["acquire",0,"A"],["acquire",50,"B"]]]
Output: [true,false]
Test #2B takes after expiry
Input: [100,[["acquire",0,"A"],["acquire",100,"B"]]]
Output: [true,true]
Test #3Release frees lock
Input: [100,[["acquire",0,"A"],["release",50,"A"],["acquire",60,"B"]]]
Output: [true,true,true]
Test #4Renew prevents takeover
Input: [100,[["acquire",0,"A"],["renew",50,"A"],["acquire",100,"B"]]]
Output: [true,true,false]
Test #5Wrong owner can't release
Input: [100,[["acquire",0,"A"],["release",50,"B"]]]
Output: [true,false]