题解 | #配置文件恢复#
配置文件恢复
https://www.nowcoder.com/practice/ca6ac6ef9538419abf6f883f7d6f6ee5
这个题有一点没有说清除,就是每个字符串都是匹配的命令的开头,匹配中间的不算。
主要分两种情况:
(1)输入的只有单字符串,这个只能匹配单字符串的命令,也就是reset。 匹配命令行的开头用s[0] == command[0][0:len(s[0])]
(2)就是输入带一个空格的字符串,即可以分成两个单字符串的东西。匹配命令行的开头用s[0] == command[0][0:len(s[0])] 和s[1] == command[0][0:len(s[1])]
这里面又分成匹配结果唯一和不唯一(0或多个)两种情况,我的代码里面引入了一个标志times 来表明匹配到了几个结果,只有当times=1的时候才打印命令,其他的情况都打印'unknown command'
command = ['reset','reset board','board add','board delete','reboot backplane','backplane abort'] run = ['reset what','board fault','where to add','no board at all','impossible','install first'] dic = dict(zip(command,run)) while True: try: s = raw_input().strip().split() if len(s) ==1: if s[0] == command[0][0:len(s[0])]: print run[0] else: print 'unknown command' elif len(s)==2: res = '' times=0 for i in range(1,6): if s[0] == command[i].split()[0][0:len(s[0])] and s[1] == command[i].split()[1][0:len(s[1])]: res = run[i] times+=1 if times == 1: print res else: print 'unknown command' except: break

