繁体   English   中英

为什么我用Python编写的反转位代码会出现此错误?

[英]Why my reversing bits code written in Python gets this error?

我在Leetcode中遇到了这个问题: https ://leetcode.com/problems/reverse-bits/

所以输入将是一个十进制整数,我必须将其转换为32位二进制。

然后我将其反转并将其返回到十进制。

例如:

输入:

8 (whose binary == 1000)

输出:

1 (whose binary == 0001)

这是我的代码:

# n is input number
str1 = str('{0:0{1}b}'.format(n,32))
len_str = len(str1)
index_swap = len_str - 1
result = [0] * len_str

for i, char in enumerate(str1):
    result[index_swap-i] = char

return int(str(''.join(result)),2)

如果我在Leetcode在线法官中运行此代码,则会收到此错误:

TypeError: sequence item 0: expected string, int found

输入0引发此错误。

我不知道为什么会引发这个错误。 我的代码似乎运行良好!

result = [0] * len_str

len_str是一个int值,但是len_str是一个字符串。 那条线应该发生什么? 也许:

result = [''  for x in xrange(len_str)]

初始化一个大小为len_str的空字符串

# There ...
a = 8
b = "{0:b}".format(8)[::-1]
print(type(b), b)

# and back again.
c = int(b[::-1], base=2)
print(type(c), c)

产量

<class 'str'> 0001
<class 'int'> 8

另请参阅在Python中反转字符串

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM