Untitled

 avatar
unknown
javascript
5 months ago
740 B
3
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],[i]]
      ret.push('good')
    } else {
      var earliest2 = queue[r][0][0]
      while (i - earliest2 >= 5){
        queue[r][0].shift()
        earliest2 = queue[r][0][0]
      }
      var earliest5 = queue[r][1][0]
      while (i - earliest5 >= 30){
        queue[r][1].shift()
      }
      if ((queue[r][0].length >= 2) || (queue[r][1].length >= 5)){
        ret.push('bad')
      } else {
        queue[r][0].push(i)
        queue[r][1].push(i)
        ret.push('good')
      }
    }
  }
  console.log(ret)
  return ret
}

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