呼叫转移
呼叫转移是指您的电话无法接听或您不愿接电话,可以将来电转移到其它电话号码上。它是电信业一项传统通信业务,又称呼叫前转、呼入转移。
- 用户被呼叫时的状态有4种:
idle
,busy
,no-response
,unreachable
- 用户可登记的5种呼叫转移,格式为
type number
,type代表转移种类, number代表转移号码:
type为 0:无条件转移,优先级最高,用户处于任何状态都触发此转移
type为 1:用户状态busy
时触发此转移
type为 2:用户状态no-response
时触发此转移
type为 3:用户状态unreachable
时触发此转移
type为 4:默认转移,优先级最低,用户不是idle
状态时,且无法触发上述四种转移,触发此转移
注:同一个状态可登记多次,以最后一次登记为准。
现给出某一用户当前的用户状态,以及其登记的若干个呼叫转移号码,请输出最终的呼叫结果:
- 若发生转移,则输出转移号码
- 若用户状态为idle,且未发生转移时,则呼叫本机成功,输出
success
- 若呼叫失败:既没有发生转移,也没有呼叫本机成功,则输出
failure
。例如,用户状态为 busy,但用户既未登记 type 为 0 或 1 或 4 的呼叫转移,则呼叫失败。
解答要求
时间限制: C/C++ 1000ms, 其他语言:2000ms
内存限制: C/C++ 256MB, 其他语言:512MB
输入
第一行是数字 num 和 字符串 status:num代表呼叫转移登记的次数( 0 < N <= 20),status表示用户被呼叫时的状态。
接下来 num 行是用户的呼叫转移登记操作,转移号码长度 6-15位,用例保证输入合法。
输出
一个字符串,代表最终的呼叫结果
样例1
复制输入:
3 busy
2 18912345678
4 18912345678
4 13312345567
复制输出:
13312345567
解释:
用户busy,且没有登记 busy 转移,但登记默认转移,呼叫转移到默认转移号码。
默认转移号码已最后一次登记为准
样例2
复制输入:
1 no-response
3 075587678100
复制输出:
failure
解释:
用户no-response,没有登记no-response转移,也没有登记默认转移,呼叫失败。
样例3
复制输入:
1 idle
3 075587678100
复制输出:
success
解释:
用户idle,且没有登记无条件转移,呼叫成功
提示
答题要求:结果可信和过程可信同样重要,您编写的代码需要符合可信的要求(包括通用编码规范、安全编码规范和圈复杂度)。
1 import collections 2 from typing import List 3 4 5 def calling(status: str, reg_call_forward_nums: List[List[str]]) -> str: 6 dic = {'busy': 1, 'no-response': 2, 'unreachable': 3} 7 phone = collections.defaultdict(list) 8 for i in range(len(reg_call_forward_nums)): 9 phone[reg_call_forward_nums[i][0]].append(reg_call_forward_nums[i][1]) 10 curnum = dic.get(status) 11 keys = phone.keys() 12 if 0 in keys: 13 return phone.get(0)[-1] 14 if status == 'idle': 15 return 'success' 16 elif curnum in keys: 17 return phone[curnum][-1] 18 elif 4 in keys: 19 return phone[4][-1] 20 else: 21 return 'failure' 22 23 if __name__ == "__main__": 24 nums_count, status = input().strip().split() 25 reg_call_forward_nums_all = [input().strip().split() for _ in range(int(nums_count))] 26 reg_call_forward_nums = [[int(value[0]), value[1]] for value in reg_call_forward_nums_all] 27 print(calling(status, reg_call_forward_nums))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具