#40344: 解題思路-Python-給我自己的筆記


channoliu@gmail.com (channo liu)

學校 : 不指定學校
編號 : 269467
來源 : [36.232.74.48]
最後登入時間 :
2024-06-16 19:34:38
e522. 106 彰雲嘉區複賽 - Q2 跑長編碼與資料壓縮 -- 106彰雲嘉資訊學科能力複賽 | From: [36.232.112.200] | 發表日期 : 2024-05-12 12:26

1。輸入n(有n筆)
  我用ans=[ ]放答案用

2。for迴圈a跑n次
  ans.append([ ]) 用二維陣列放答案
  s=input 一筆一筆放資料
  我先判斷如果輸入的不是二進位,直接給-1,跳出這回合的for (continue)
    (判斷方式,出現1的次數+出現0的次數不等於s總長度)
  ss=[ ] 我用一個空list放各組連續結果
  for迴圈i跑s字串次,一個一個字元抓出來看
    如果是一樣的字元,確定長度小於7時,放同一個ss[[放這裡]]
           長度=7時,創一個新的[ ]放。ss[[滿7],[放新的這裡]]
    否則(不一樣字元時),創一個新的[ ]放。ss[[相同],[不同的放這]]
  處理ss,把它整整成壓縮後的格式
  for迴圈x跑ss次,每次抓出一組相同的值
    計算有幾個字元,轉二進位之後整理成所要的格式
    xx[0].zfill(1)+(bin(tim)[2:]).zfill(3)   
    第一個值放0或1的字元,
    之後三個放二進位之後的結果,zfill補0三位數。 bin轉二進位
  算壓縮率後放到ans中

3。印出ans

 

程式碼參考:https://channoliu.blogspot.com/2024/05/zerojudge522-106-q2.html

 

 
ZeroJudge Forum