最近接到一个面试题,题目内容非常有兴趣,抽时间研究了一下,代码写的很简陋勿喷。
描述如下:
一个典型的电话拨号盘如下:
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
程序:
using System;
using System.Collections.Generic;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
List<int> numTemp = new List<int>();
Dictionary<int, int[]> mapTemp = new Dictionary<int, int[]>();