我的用Java写的有问题 有待改善,然后百度发现用python写的
message = input()
sstr=[bin(ord(c)).replace('0b', '') for c in message]
for i in range(len(sstr)):
if sstr[i] != 7:
sstr[i] = '0'*(7-len(sstr[i]))+sstr[i]
message2=''.join(sstr)
code = ''
n = 1;m=1
for i in range(len(message2)):
a = message2[i]
if i < (len(message2) - 1):
if a == '1':
if a == message2[i + 1]:
n += 1
else:
code += '0' + ' ' + '0' * n + ' '
n = 1
else:
if a == message2[i + 1]:
m += 1
else:
code += '00' + ' ' + '0' * m + ' '
m = 1
else:
if a == '1':
if a == message2[i - 1]:
code += '0' + ' ' + '0' * n
else:
code += '0' + ' ' + '0'
else:
if a == message2[i - 1]:
code += '00' + ' ' + '0' * m
else:
code += '00' + ' ' + '0'
print(code)
看起来很复杂对不对,我的Java写的也是如此,当我提交发现 Browse the
best Solution for this puzzle链接时 点进去 看了第一个 That’s very short,i
say what f***? in my mind,这也太强了吧
import sys
import math
msg = input()
out=""
bn=""
b=""
for c in msg:
bn += bin(ord(c))[2:].zfill(7)
for c in bn:
if c == "1" != b:
out += " 0 "
b="1"
elif c == "0" != b:
out += " 00 "
b="0"
out += "0"
print(out.strip())
难道这就是大佬与我这种 code copier之间的差距吗?
虽然用了内置函数strip 去除空白,上次那个题也是传值赋值玩的6 得到最小接近0的数,所以从开始思路就想的不一样,还是的多思思!