python ccf题解 201612-3 权限查询
问题描述
试题编号: | 201612-3 |
试题名称: | 权限查询 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: |
问题描述 授权 (authorization) 是各类业务系统不可缺少的组成部分,系统用户通过授权机制获得系统中各个模块的操作权限。 输入格式 输入第一行是一个正整数 p,表示不同的权限类别的数量。紧接着的 p 行被称为 P 段,每行一个字符串,描述各个权限。对于分等级权限,格式为 <category>:<level>,其中 <category> 是权限类名,<level> 是该类权限的最高等级。对于不分等级权限,字符串只包含权限类名。 输出格式 输出共 q 行,每行为 false、true,或者一个数字。false 表示相应的用户不具有相应的权限,true 表示相应的用户具有相应的权限。对于分等级权限的不带等级查询,如果具有权限,则结果是一个数字,表示该用户具有该权限的(最高)等级。如果用户不存在,或者查询的权限没有定义,则应该返回 false。 样例输入 3 样例输出 false 样例说明 样例输入描述的场景中,各个用户实际的权限如下: 评测用例规模与约定 评测用例规模: |
代码
[code]#权限查询 pris = {} #privileges roles = {} users = {} #权限 p = int(input()) for i in range(p): s = input().split(":") pris[s[0]] = s[1] if len(s)==2 else ""#因为保证合法性所以其实不用写这段 #角色 r = int(input()) for i in range(r): s = input().split() n = int(s[1])#角色权限个数 mypri = [] for j in range(2,2+n): mypri.append(s[j].split(":")) roles[s[0]] = mypri#以列表储存 #用户 u = int(input()) for i in range(u): s = input().split() n = int(s[1])#用户角色个数 myrole = [] for j in range(2,2+n): myrole.append(s[j]) mypri = {} for role in myrole:#遍历用户 for pri in roles[role]:#遍历每个用户权限 if(len(pri)==1):#无等级权限 mypri[pri[0]]="" elif (pri[0] not in mypri):#等级权限首次存储 mypri[pri[0]]=int(pri[1]) else:#比较存入权限最大等级 mypri[pri[0]] = max(mypri[pri[0]],int(pri[1])) users[s[0]] = mypri#用字典存储 #查询 q = int(input()) for i in range(q): name,this_pri = input().split()#用户名,权限 this_pri = this_pri.split(":")#区分是否有等级 if(name in users):#用户存在 if(this_pri[0] in users[name]):#权限名存在 if(len(this_pri)==1): if(users[name][this_pri[0]]==""):#无等级权限 print("true") else: print(users[name][this_pri[0]])#查询等级 elif(len(this_pri)==2):#带等级 if(users[name][this_pri[0]]==""):#无效查询 print("false") elif(int(this_pri[1]) <= users[name][this_pri[0]]):#等级满足 print("true") else:#等级不满足 print("false") else: print("false") else: print("false")
阅读更多
- CCF认证考试201612-3 权限查询题解
- CCF CSP 编程题目和解答-----试题名称:权限查询-------201612-3
- CCF CSP试题 201612-3 权限查询
- 【CCF】201612_3权限查询
- csp ccf 201612-3 权限查询java 100分
- ccf 201612-3 权限查询
- CCF CSP 权限查询 JAVA 201612-3
- CCF CSP 201612-3 权限查询(Java-100分)
- CCF认证 201612-3 权限查询
- python ccf题解 201709-3 JSON查询
- [CCF-CSP]201612-3(权限查询)
- CCF 201612-3 权限查询
- CCF-CSP -201612-3 权限查询参考答案
- CCF 201612-3 权限查询 (90分,提示运行错误)
- 201612-3 权限查询 ccf
- CCF 201612-3 权限查询 (90分)
- CCF-CSP 权限查询 JAVA 201612-3
- CCF 201612-03 权限查询 题解
- ccf 权限查询
- ccf认证权限查询40分