Advertisement
giovannimart

Untitled

Jun 5th, 2024
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 1.10 KB | None | 0 0
  1. func GetRejectedRequests(requests: [String], limit_per_second: Int) -> [Int] {
  2.     var accepted: [String:[Int]] = [:]
  3.     var rejected: [Int] = []
  4.  
  5. outerloop: for request in requests {
  6.         let requestSplitted = request.components(separatedBy: " ")
  7.         guard requestSplitted.count == 3 else {
  8.                     continue
  9.                 }
  10.         let ipRequests = accepted[requestSplitted[1]]
  11.         let timestamp: Int = Int(requestSplitted[2]) ?? 0
  12.         let id: Int = Int(requestSplitted[0]) ?? 0
  13.         guard let ipRequests else {
  14.             accepted[requestSplitted[1]] = [timestamp]
  15.             continue
  16.         }
  17.  
  18.         var count = 1
  19.         for last in ipRequests {
  20.             if timestamp - last >= 1000 {
  21.                 accepted[requestSplitted[1]]?.append(timestamp)
  22.                 continue outerloop
  23.             } else {
  24.                 count += 1
  25.             }
  26.         }
  27.  
  28.         if count <= limit_per_second {
  29.             accepted[requestSplitted[1]]?.append(timestamp)
  30.             continue
  31.         }
  32.  
  33.         rejected.append(id)
  34.     }
  35.     return rejected
  36. }
  37.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement