Algorithm做算法題副砍,Review點(diǎn)評(píng)英文文章,Tip總結(jié)技術(shù)技巧抄肖,Share做技術(shù)分享。每周打卡一次窖杀,這就是ARTS打卡漓摩。
1. 做算法題
LeetCode算法題461. 漢明距離
題目:兩個(gè)整數(shù)之間的漢明距離指的是這兩個(gè)數(shù)字對(duì)應(yīng)二進(jìn)制位不同的位置的數(shù)目。給出兩個(gè)整數(shù) x 和 y入客,計(jì)算它們之間的漢明距離管毙。注意: 0 ≤ x, y < 2^31。示例:輸入: x = 1, y = 4桌硫,輸出: 2夭咬,因?yàn)? 的二進(jìn)制(0 0 0 1),4 的二進(jìn)制(0 1 0 0)铆隘,二進(jìn)制位不同的個(gè)數(shù)為2卓舵,漢明距離就為2。
解題思路:
最簡(jiǎn)單的方法是把十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制膀钠,然后比較不同的個(gè)數(shù)掏湾。但這個(gè)過(guò)程用異或運(yùn)算就能搞定,異或就是計(jì)算兩個(gè)數(shù)字中的不同肿嘲。
解題代碼:
class Solution:
def hammingDistance(self, x: int, y: int) -> int:
return bin(x^y).count('1')
2. 點(diǎn)評(píng)英文文章
文章All About Heisenbug融击,介紹了一種奇特的軟件Bug,海森堡bug睦刃,用了物理學(xué)家海森堡(Heisenberg)命名砚嘴。著名的海森堡測(cè)不準(zhǔn)定律是說(shuō)不可能同時(shí)測(cè)準(zhǔn)物質(zhì)的位置和動(dòng)量。海森堡Bug意思是指那些在修復(fù)中會(huì)消失或改變行為的Bug涩拙。文中介紹了發(fā)生此類Bug的原因和處理方法际长。你是否也碰到過(guò)這樣的Bug呢。
3. 技術(shù)技巧
學(xué)習(xí)Linux命令總是讓人頭疼兴泥,學(xué)了不馬上用就會(huì)忘工育,忘了又要從新學(xué)。Linux學(xué)習(xí)的路徑雖然不陡峭搓彻,一點(diǎn)一點(diǎn)敲命令即可如绸,但每次都是書到用時(shí)方恨少。要完成一個(gè)任務(wù)旭贬,左查查命令怔接,右查查參數(shù),像沒(méi)學(xué)過(guò)一樣稀轨。為了走出這個(gè)怪圈扼脐,除了多練習(xí),多實(shí)踐奋刽,還可以通過(guò)游戲的方式學(xué)習(xí)瓦侮。由淺入深艰赞,這篇文章介紹了三個(gè)Bash學(xué)習(xí)的命令行游戲。學(xué)了馬上就用肚吏,用了馬上就又反饋方妖。
4. 技術(shù)分享
Zookeeper默認(rèn)可以未授權(quán)訪問(wèn),這讓黑客有了可乘之機(jī)罚攀,通過(guò)未授權(quán)訪問(wèn)漏洞党觅,收集敏感信息,為攻擊做好準(zhǔn)備坞生。參考此文復(fù)現(xiàn)一遍Zookeeper無(wú)授權(quán)訪問(wèn)漏洞仔役,可以看到很多服務(wù)器信息掷伙,雖然沒(méi)有直接把家里的財(cái)務(wù)物送人是己,但無(wú)異于把家里的地圖和盤托出。Zookeeper漏洞修復(fù)參考此文任柜∽浞希基本原理是通過(guò)添加路由表,在防火墻上只允許白名單IP地址訪問(wèn)Zookeeper服務(wù)宙地。