某游戏大厂测开笔试题分享

这篇博客分享了一道某游戏大厂测开笔试题,涉及计算拨打电话号码时手指移动的最小距离。题目中给出了电话拨号盘的布局,定义了手指移动距离的计算方式,并给出了解题步骤和算法实现,包括用Python编写代码来计算整个电话号码的最小移动距离。
摘要由CSDN通过智能技术生成

测开笔试题

某厂笔试题:
执行时限1000ms
一个典型的电话拨号盘如下:
1 2 3
4 5 6
7 8 9
** 0 #
手指在两个按键之间的移动距离被定义为这两个键的x、y坐标差的绝对值之和。
比如:6到自身的距离是0,到3、5、9键的距离是1,到2、4、8、#键的距离是2,
到1、7、0键的距离是3,到*键的距离是4。
现在要你算一下:拨打一个电话号码手指所需要移动的最小距离是多少?
假设,手指的初始位置是在“5”键上。
输入:
一行,一个字符串,表示需要拨打的电话号码。
输入约束:
电话号码的每一位仅包含数字0到9,且总长度范围是[3,20]
输出:
一个整数,表示拨完整个号码,手指所需要移动的最小距离。
例子:输入 911
输出 6


解题过程:
例子分析: 输入911,手指经过的键是5–>9–>1–>1,其中5–>9的最小距离是2,9–>1的最小距离是4,1–>1的最小距离是0,因此结果是2+4+0=6。
算法:
1、初始化一个电话盘一样的二维列表;
2、根据二维列表,生成一个字典,电话盘中的每个键值是key,
键值在二维列表中的坐标[x轴,y轴]是value;
3、遍历电话号码ÿ

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值