乙個典型的電話撥號盤用到的曼哈頓距離程式題

2021-09-27 06:53:33 字數 959 閱讀 9110

最近接到乙個面試題,題目內容非常有興趣,抽時間研究了一下,**寫的很簡陋勿噴。

描述如下:

乙個典型的**撥號盤如下: 

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;

else if (char.isdigit(c))

else

}if (3 <= digit && digit <= 20)

);for (int i = 0; i < numtemp.toarray().length; i++)}}

else

for (int i = 0; i < digit; i++)

console.writeline(summap);

console.readkey();

}static int distancesum(int x, int y)

}return sum;},

,,,,

,,,,

};phonecall = new int ;

return phonecall;}}

}

哈夫曼編碼的乙個實際應用

本問題是來自於課堂上老師關於貪心問題的第三講.huffman編碼是最有效的二進位制編碼,其中貪心策略主要體現在根據頻度來設定編碼長度.最早在資料結構的便有學習到,當時採用的建樹方式是帶指標的結構體 小頂堆 使用小頂堆的優勢在於堆是動態的,同時也有較高的效率 插入和刪除並調整的效率約為o lgn 查詢...

哈夫曼編碼的乙個實際應用(壓縮)

在課堂上,我們學習了哈夫曼編碼的原理和實現方法,上實驗課時也動手實現過,後來我們又追加介紹了哈夫曼編碼的實際壓縮和解壓縮的實現方法,並且在課堂上也演示了,但當時我們卻忽略了乙個環節,那就是實際檔案儲存時,二進位制是位元位,而儲存的單位一般是位元組,顯示時又是按照十六進製制的。現在給你乙個由字典裡的字...

乙個典型的集群配置

3 配置集群 乙個典型的集群配置 三颱機器a 172.16.7.110 b 172.16.7.119 c 172.16.7.911 機器a 包含兩個實際的server 乙個是管理伺服器admin 乙個是 伺服器proxy 機器b 包含兩個server 受控伺服器,node1 node2 機器c 同機...