#26787: [Python]三行解法的運行速度不錯呢~ :D


406490150@gms.tku.edu.tw (我是朱朱)

學校 : 國立交通大學
編號 : 139794
來源 : [140.113.236.122]
最後登入時間 :
2022-09-03 11:13:16
c705. Int32 to IPv4 -- it's david codewars | From: [218.173.238.128] | 發表日期 : 2021-08-24 23:06

哪三行,快說啊!

  1. 從 套件庫引入常用的 標準輸入
  2. 遍歷每一行
  3.       輸出每一行結果

 

有講跟沒講一樣www

我只能說Python真的很簡潔,不僅閱讀起來很舒服,也很容易將心中所想實現出來。

 

這題的重點在於進位轉換,如同上一位解題報告所說,位元運算可以帶來巨大的計算節省,畢竟組合語言就有包含這些AND、RIGT SHIFT、等等的單一指令,

想到組合語言就想到byte,又想到0xFF好像是一個byte所需要的位元,又想到AND可以達成clear與keep兩種操作。

大提示就是:數字先右移特定bits(1個byte=8個bits)、再 保留 一個byte下來,就會是該格的答案,也就是需要有四個類似的操作。

 

那Python的輸出有什麼好辦法?

print()有一個參數叫做sep,或許可以拿來試試看,畢竟他可以直接印出數字麻

不然就用 f' ' f-string好像也不錯,自己點、自己分割,用大括號{}包起來可以直接運算式子

 

試試看吧~如果你可以湊出三行,大概秒數也會很快吧 :D

 
#26805: Re:[Python]三行解法的運行速度不錯呢~ :D


406490150@gms.tku.edu.tw (我是朱朱)

學校 : 國立交通大學
編號 : 139794
來源 : [140.113.236.122]
最後登入時間 :
2022-09-03 11:13:16
c705. Int32 to IPv4 -- it's david codewars | From: [1.172.232.244] | 發表日期 : 2021-08-25 17:40

還有一種玩法是,利用int().to_bytes()轉換,比如

[k for k in (1875123557).to_bytes(4, 'big')]

[111, 196, 29, 101]

 

酷吧 :D

 
ZeroJudge Forum