xinyu04

导航

[Google] LeetCode 359 Logger Rate Limiter

Design a logger system that receives a stream of messages along with their timestamps. Each unique message should only be printed at most every 10 seconds (i.e. a message printed at timestamp t will prevent other identical messages from being printed until timestamp t + 10).

All messages will come in chronological order. Several messages may arrive at the same timestamp.

Implement the Logger class:

  • Logger() Initializes the logger object.
  • bool shouldPrintMessage(int timestamp, string message) Returns true if the message should be printed in the given timestamp, otherwise returns false.

Solution

直接用 \(map\) 记录即可

点击查看代码
class Logger {
private:
    map<string,int> rec;
public:
    Logger() {
        
    }
    
    bool shouldPrintMessage(int timestamp, string message) {
        if(rec.find(message)==rec.end()){
            rec[message]=10+timestamp;
            return true;
        }
        else{
            if(timestamp<rec[message])return false;
            else{
                rec[message]=10+timestamp;
                return true;
            }
        }
    }
};

/**
 * Your Logger object will be instantiated and called as such:
 * Logger* obj = new Logger();
 * bool param_1 = obj->shouldPrintMessage(timestamp,message);
 */

posted on 2022-08-28 15:28  Blackzxy  阅读(12)  评论(0编辑  收藏  举报