Untitled

 avatar
unknown
javascript
5 months ago
795 B
1
Indexable
function gateway(requests){
  var queue = {}
  var ret = []
  for (var i=0; i<requests.length; i++){
    var r = requests[i]
    if (!(r in queue)){
      queue[r] = [i]
      ret.push('good')
    } else {
      var inqueue = queue[r]
      while (inqueue[inqueue.length-1]-inqueue[0] > 30){
        inqueue.shift()
      }
      var gt2 = 0
      var gt5 = 0
      for (var j=0; j<inqueue.length;j++){
        if (inqueue[j] > i-5){
          gt2 += 1
        }
        if (inqueue[j] > i-30){
          gt5 += 1
        }
        if ((gt2 == 2) || (gt5 == 5)){
          ret.push('bad')
          break
        }
      }
      if (gt2 < 2 && gt5 < 5){
        ret.push('good')
        queue[r].push(i)
      }
    }
  }
  console.log(ret)
  return ret
}

gateway(['a','a','b','b','a','a','d'])
Editor is loading...
Leave a Comment