小说网_好看的小说免费阅读_网文欣阅 - 阅文集团旗下网站

首頁 短篇

編程代碼之戰(zhàn)

第十章 地圖壓縮

編程代碼之戰(zhàn) 程序小猿 538 2022-09-03 20:36:09

  “阿歷克斯,再想想別的法子吧,這可是我的美好回憶哪...”

  牛仔央求著說道。

  “唉,好吧”。

  楊成只好單手托著腮,開始了思考。

  地圖信息對象是像這樣的:

  [1,1,1,0,1]

  [0,0,1,0,0]

  [1,0,1,0,1]

  [1,0,0,0,1]

  [1,1,1,1,1]

  這是一個5X5的矩陣,其中數字1代表可通行的區(qū)域,數字0標注的區(qū)域無法通行。

  那么,怎么把這個地圖實例壓縮到10個字符以內呢?

  像這樣?

  “[[1,1,1,0,1],[0,0,1,0,0],[1,0,1,0,1],[1,0,0,0,1],[1,1,1,1,1]]”

  (stringify)

  這種轉為字符串的方法很有效,但缺點也很明顯。

  它占用的存儲空間太多了,遠遠超過了10個字符的長度。

  所以,必須想一個辦法,對地圖信息進行壓縮。

  楊成通過觀察,發(fā)現了一種比較好的壓縮方法。

  首先將矩陣的每一行,都看作是二進制表示的一個數字。

  比方說,第一行:

  [1,1,1,0,1]

  把它看作二進制數字:

  “11101”

  (36進制由0-9和a-z組成,a-z對應10-35)

  接著,將這個2進制數字,轉換為36進制。

  得到小寫字母“t”。

  這樣,又足足減少了4個字符,達到了壓縮的目的!

  如果對矩陣的每一行都這么處理,就可以得到5個36進制字符。

  (t,4,l,h,v)

  再將這5個字符用逗號分割開來,以表明是不同的行,到時候方便還原數據。

  總共只需要5+4=9個字符,其中包括4個逗號。

  Bingo!

按 “鍵盤左鍵←” 返回上一章  按 “鍵盤右鍵→” 進入下一章  按 “空格鍵” 向下滾動
目錄
目錄
設置
設置
書架
加入書架
書頁
返回書頁
指南
主站蜘蛛池模板: 台中市| 祥云县| 雷山县| 玛曲县| 汕尾市| 上栗县| 九龙县| 吴桥县| 确山县| 黄梅县| 宁安市| 宁都县| 威海市| 龙口市| 高青县| 滁州市| 克山县| 德令哈市| 刚察县| 开鲁县| 浮山县| 彭州市| 房山区| 宾阳县| 溧水县| 开封县| 高青县| 龙里县| 库车县| 淮安市| 玛纳斯县| 静宁县| 黄浦区| 栖霞市| 石首市| 巴塘县| 凤翔县| 贺州市| 宁河县| 岳池县| 吉安市|