LeetCode解題筆記#1-Hamming Weight

從今天開始會盡量每天更新一篇我在LeetCode上的解題和思路下來,我的解答方式不一定是最好的,但希望能夠幫助到同樣也在刷題的各位!

Hamming Weight 題目詳解

以上是問題的內容,幫大家英翻中的話就是希望將使用者輸入的binary bit轉換成漢明重量,而漢明重量我簡單的理解就是將binary bit裡面有幾個1換算成數字

譬如000…00001(32bit)裡面有一個1所以 Hamming weight就會是1,細節可以看上面的Example

解題思路

思路就是要將使用者輸入的binary bit轉換成字串,之後再使用split function以1為區隔,這樣區隔出來的陣列長度-1就會是答案了

class Solution:
    def hammingWeight(self, n: int) -> int:
        #turn in to string and count for 1 ?
        n = '{0:032b}'.format(n) # have to turn n into  string binary bit
        print(n) 
        string_n = str(n)
        list_n = string_n.split('1') #split by 1
        length_n = len(list_n)-1# see how long the list is == how many 1 is in it 
        return length_n

這是第一次思考的思路在一些些微的debug做提交之後,得到了以下的跑分

算是還不錯的跑分,但實際看到了別人的程式碼之後,看到了更簡潔的寫法,當然如果就思路上來講的話基本上是大同小異,到這部分就會是考驗對於語法的熟捻程度還有知不知道一些函式的使用

class Solution:
    def hammingWeight(self, n: int) -> int:
        return bin(n).count("1")

原來bin這個方法就可以代替我剛轉換上的方法,以及使用count就能去找到使用者,這樣看起來程式碼跟簡潔也更好懂了,今天的分享到這邊,之後會再分享更多LeetCode的解題!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。