私はゼロがものによってカプセル化されている2進数で場所の長さを見つけるために使用される以下の機能があります。結果は文字列の分割が「doesnのことを示してPythonの基本的な文字列の分割方法のふるまい
def solution(N):
# write your code in Python 2.7
# convert to binary
binary = bin(N)[2:] # results prefixed with '0b'
# special case of no zeros
if '0' not in str(binary):
print('No binary gap in %s'% str(binary))
return 0
# special case of all zeros after first 1
if '1' not in str(binary)[1:]:
print('No binary gap in %s'% str(binary))
return 0
# special case of N == 1 = 01
if N == 1:
print('No binary gap in %s'% str(binary))
return 0
bgaps = []
sbin = str(binary)
print(sbin)
spbin = sbin.split('1')
print(spbin)
for i in spbin:
if i == '': continue
bgaps.append(len(i))
return max(bgaps)
for N in [6,328,147,15,2,483,647]:
print(solution(N)
を常に区切り文字を使用していた''
を返します。例えば、 101001000
ため分割は
['', '0', '00', '000']
代わりの
['', '0','', '00', '', '000']
私はこれが「01」の特別な意味に関係していることを疑う返しますが、区切り文字は「1」です。なぜこの分割がこのように振る舞うかについての考えはありますか?
これは2.7ではありません。 – Mangohero1
'split'は、区切り文字' 'a、b、c" .split( '、')== ["a"、 "b"、 "c"] 'をスローします。 – ForceBru