某项目中需要实现限制用户1小时内对同一手机号最多发送3条短信。需要注意的是,用户可以设置任意时刻发送给某一手机短信,这个限制条件只限制发送方,而一个手机号码在1小时内收到的短信数无限制。
本算法程序最终实现的效果是到达发送设定时间时,如果1小时内给发送手机号已经发送过3次,则弹窗提示用户这个提示。
这个问题的核心是“一小时”的理解。它和论坛的XX时间内最多只能搜索XX次类似,参考大多数类似问题的解决方法,本算法程序是这样处理“一小时”的:如果限制为1小时内最多3条,假设发送给手机号A一条短信,距离第一条短信发送1小时内可以继续发送第2、3条短信,但第4条短信必须在1小时之后才发送。
本算法思路是:
1)新建本地数据库表SMS_LIMIT,包含三个属性:接收手机号phone_number、已发送短信数sms_send_num、限时开始时间last_send_time;