**利用位運算:
總耗時: 2834 msclass solution
return count;}};
利用位運算 與減法
總耗時: 2366 msclass solution
return count;}};
取一位判斷一位:
總耗時: 2103 msclass solution
return count;}};
下面是自己寫的python**,可以通過42% 的資料
但是[-2147483648, 2147483647],當乙個數為-2147483648時會出錯
換了一種寫法,從後往前遍歷,居然ac了:class
solution:
""" @param a, b: two integer
return: an integer
"""defbitswaprequired
(self, a, b):
# write your code here
if a < 0:
a = 17179869184 + a
if b < 0:
b = 17179869184 + b
m, n = ''.format(a), ''.format(b)
m, n, count = list(m), list(n), 0
for i in range(len(m)):
if m[i] == ' ':
m[i] = '0'
if n[i] == ' ':
n[i] = '0'
if m[i] != n[i]:
count += 1
return count
總耗時: 494 mclass
solution:
""" @param a, b: two integer
return: an integer
"""defbitswaprequired
(self, a, b):
# write your code here
if a < 0:
a = 17179869184 + a
if b < 0:
b = 17179869184 + b
m, n = ''.format(a), ''.format(b)
m, n, count = list(m), list(n), 0
# print(len(m))
# print(len(n))
for i in range(-1, -33, -1):
if m[i] == ' ':
m[i] = '0'
if n[i] == ' ':
n[i] = '0'
if m[i] != n[i]:
count += 1
return count
LintCode解題筆記 將整數A轉換為B
如果要將整數a轉換為b,需要改變多少個bit位?樣例 如把31轉換為14,需要改變2個bit位。31 10 11111 2 14 10 01110 2 思路1 從低位到高位依次比較a,b對應位置的二進位制值,如何才能依次比較?a,b又不是一二進位制的形式存成字串。我們需要有一種方法,能每次僅取到特定...
Lintcode181 將整數A轉換為B
描述 如果要將整數a轉換為b,需要改變多少個bit位?both n and m are 32 bit integers.您在真實的面試中是否遇到過這個題?樣例如把31轉換為14,需要改變2個bit位。31 10 11111 2 14 10 01110 2 兩個數異或之後得到數t 例如樣例中t為100...
將int陣列轉換為整數
將int陣列轉化為整數 思路及步驟 1 定義乙個string物件 str,值為 因為需要使用string物件的concat方法,該方法功能是將指定字串新增至該字串的結尾處。且該string物件在初始化時不可定義為null,否則會出現空指標異常 2 定義for迴圈對該陣列完成遍歷。3 在遍歷過程中需要...