今天不知道怎麼突然想到了 haffman編碼,爾後又突然想到了 剛進公司時的面試題 -- 求海明重量。
難得,那就介紹下海明這個玩意,不要再忘記了,以此紀念。
記得當時題目不是直接寫的海明重量,是算一個0、1數串的1的個數。當時好像寫了好多廢函數,年代久遠,我忘了。
說海明重量前,得先介紹什麼是海明距離:
定義爲:兩個等長的串,對應位不同的個數,如
112233 和 113322 有4位不同,那麼這個距離就是4.
接着就是海明重量:
一個串,對應於等長的0串的海明距離,如
112233,那麼與000000比較,都不同,距離爲6;這個重量放在二進制串中比較合適,如 bitmap.
110011,那麼與000000比較,距離就是4,我們發現,這個距離也就是1的個數,也就是我做的面試題。
具體應用,我瞭解的稍微相關的就是 位圖 -- bitmap了,孤陋寡聞了。
接着將收集的計算海明重量的方法以代碼形式羅列:
看到介紹時,眼前突然一亮,實現起來更是一亮,竟然是一行,雖然效率不高,但是比起循環來,我更喜歡這個。希望以前我沒有用循環來算這個。