题解 | #[NOIP2017]图书管理员#
[NOIP2017]图书管理员
https://ac.nowcoder.com/acm/problem/16422
解题思路:通过字符串匹配,先不改变输入字符类型,通过下标索引图书库中编码最后长度为需求者图书编码的子串进行判断
nbooks,nreaders=list(map(int,input().split()))
booklist = []
readlist = []
for i in range(nbooks):
booklist.append(input()) #字符串形式图书编码
booklist = sorted(booklist)
for j in range(nreaders):
codelen,code = list(input().split())
readlist.append((int(codelen),code) )#整数形式需求图书编码长度,字符串形式需求图书编码
matlist=[] #匹配最终结果
for codelen,code in readlist: #对需求图书遍历
matelem = [] #存储是否有匹配的图书
for j in booklist:
if j[-codelen:]==code: #使用字符串匹配
matelem.append(int(j))
if len(matelem)==0: #不存在匹配数据
matlist.append(-1)
else: #存在匹配书籍
matlist.append(min(matelem))
for elem in matlist:
print(elem)