计算输入密码的时间
为了防止被黑客获取到客户输入的密码,某银行在琶陆软件上以屏幕输入法输入密码。该输入法有9个按钮。每个按钮上有不多于3个空母。字母有先后顺序。按第一个字母需
要用鼠标点击按钮一次。第二个字母需要点击2次,第3个字母需要点击3次。
若连续两个字母都在同一个按钮上。则输入第一个字母后需要等待一小段时间。
假设某客户输入习惯是∶点击按钮需要1单位时间,等待一小段时间为2单位时间。某次登陆的时候,9个按钮上的字母分别为 azc dwf gti jal mon pkr shu vex yb
求该客户输入他的密码的时间。
输入∶
该客户的密码都是小写字母[a-z].密码长度<=16
keys = ['azc', 'dwf', 'gti', 'jal', 'mon', 'pkr', 'shu', 'vex', 'yb'] def get_time(input_keys): if len(input_keys ) > 16: raise Exception('wrong password!!!') time = 0 button_place = None # 记录上一次点击按钮的位置 for place, button_key in enumerate(keys): for key in input_keys: if key in button_key: time = button_key.find(key)+time+1 # 查看输入在按钮按键的位子 if place == button_place: time += 2 # 判断此密码字母是否是在同一个按键,是则等待两秒 button_place = place # 更新按钮当前按钮位置信息 return time input_keys = input('请输入密码:') time = get_time(input_keys) print(time)
————————————————
版权声明:本文为CSDN博主「桦泽」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_33528044/article/details/114387420