标签:题目 position range mon 列表 orm ima div com
这次去大华面试测试开发岗,第一题笔试题一上来有点懵,后面想了一下有些思路,时间紧迫就没写出来,一回到家又写出来了。所以这次记录一下分享给需要的朋友。
题目:
代码:
def get_time(s=‘‘): btn_str = ‘azc dwf gti jql mon pkr shu vex yb‘ btn_list = btn_str.split() position_0 = 0 sum_time = 0 for i in s: for m in range(9): if i in btn_list[m]: position_1 = m + 1 # 获取字母所在按键 if position_0 == position_1: # 如果在同一个按键上,时间+2 sum_time += 2 position_0 = position_1 for n in range(len(btn_list[m])): if btn_list[m][n] == i: position_i = n # 获取字母按键上位置 if position_i == 0: sum_time += 1 elif position_i == 1: sum_time += 2 elif position_i == 2: sum_time += 3 print(‘{}总时间为:{}‘.format(s, sum_time)) get_time(‘ac‘) get_time(‘zc‘) get_time(‘zw‘)
运行结果:
ac总时间为:6 zc总时间为:7 zw总时间为:4
解题思路:
1、首先把26个字母分组分好,即每个按键对应什么字母,此处可以用split函数切割成列表形式
2、然后将传入的字符一个一个字母进行遍历,第一步先获取到字母所在的按键position_1
3、获取到字母按键后,需要先判断是否和上一个字母在同一个按键上,如果在同一个按键则加等待时间(第一个字母的上一个按键位置position_0给了初始值0,因此不需要加等待时间)。
4、处理完毕将当前字母位置赋值给position_0,用于下一个字母对比。
5、按键位置处理完毕,获取字母在按键上的位置,根据题意依次加时间
标签:题目 position range mon 列表 orm ima div com
原文地址:https://www.cnblogs.com/xiaomeier/p/13169838.html