最近接到乙個面試題,題目內容非常有興趣,抽時間研究了一下,**寫的很簡陋勿噴。
描述如下:
乙個典型的**撥號盤如下:
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 同機...