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