lintcode 將整數A轉換為B

2021-08-07 05:45:35 字數 1673 閱讀 9676

**利用位運算:

class solution 

return count;}};

總耗時: 2834 ms

利用位運算 與減法

class solution 

return count;}};

總耗時: 2366 ms

取一位判斷一位:

class solution 

return count;}};

總耗時: 2103 ms

下面是自己寫的python**,可以通過42% 的資料

但是[-2147483648, 2147483647],當乙個數為-2147483648時會出錯

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

換了一種寫法,從後往前遍歷,居然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

# 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

總耗時: 494 m

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 在遍歷過程中需要...