某华股份测开笔试题
测试开发岗位社招笔试题:
为了防止被黑客取到客户输入的密码,某银行在登陆软件上以屏幕输入法输入密码,该输入法有9个按钮,每个按钮上有不多于3个字母,字母有先后顺序,按第一个字母需要用鼠标点击按钮1次,第二个字母需要点击2次,第三个字母需要点击3次。按键时,若连续两个字母都在同一个按钮上,则输入前一个字母后需要等待一小段时间。
假设,用户的输入习惯是:点击按钮需要1单位时间,等待一小段时间为2单位时间。某次登陆的时候,9个按钮上的字母分别为azc dwf gti jql mon pkr shu vex yb,
求该客户输入密码花费的时间?
输入:
该客户的密码都是小写字母[a~z],密码长度<=16。
输出:
该客户输入密码的时间
示例:
输入 ac---->输出 6
输入 zc---->输出 7
输入 zw---->输出 4
#核心算法:
花费时间t=按键时间t1+按键之间的等待时间t2;
算法步骤:
#1、根据"azc dwf gti jql mon pkr shu vex yb",生成二维列表,如[[“a”,“z”,“c”],[],。。。];
#3、根据二维列表,生成一个字典,类似于反射,key=按键的值,value=值的索引,索引从1开始。;
#4、遍历密