avatar
搬家挺麻烦的# Piebridge - 鹊桥
i*u
1
【 以下文字转载自 Programming 讨论区 】
发信人: iamxinyonghu (), 信区: Programming
标 题: FLG面试题,压缩整数
发信站: BBS 未名空间站 (Tue Mar 22 00:11:30 2016, 美东)
给一组unsigned int,都可以用 k bits表示 (k是给定的)。问怎么把这么多数压缩
在一起。比如给3,4,5,6,k=3,输出就是011100101110。
不知道应该输出成什么格式,string? int array? 。。。
还有怎么操作单个位置的bit?
avatar
a*i
2
累的我胳膊疼,还没有完全弄好。
而且发现力气有些小。
avatar
g*d
3
自定义输出就好了
def compress(arr, k):
mask = 1
for i in range(k-1):
mask <<= 1
mask += 1
result = 0
for v in arr:
result <<= k
result += v & mask
return bin(result)[2:]
arr = [3, 4, 5, 6]
k = 3
print compress(arr, k)
avatar
s*s
4
多麻烦?真可怜。你不要那些东西不就得了
avatar
i*u
5
非常感谢,我主要用c++,所以感觉不是很好处理。不是很熟悉Python,我想知道如果
输入的arr很长,result还能表示么?我跑了一下好像没有问题。

【在 g******d 的大作中提到】
: 自定义输出就好了
: def compress(arr, k):
: mask = 1
: for i in range(k-1):
: mask <<= 1
: mask += 1
: result = 0
: for v in arr:
: result <<= k
: result += v & mask

avatar
a*i
6
都好像需要,就是小剪刀也用的着,呵呵。

【在 s****s 的大作中提到】
: 多麻烦?真可怜。你不要那些东西不就得了
avatar
i*u
7
搜了下,好像Python长整型的确没有位宽限制。。。

【在 g******d 的大作中提到】
: 自定义输出就好了
: def compress(arr, k):
: mask = 1
: for i in range(k-1):
: mask <<= 1
: mask += 1
: result = 0
: for v in arr:
: result <<= k
: result += v & mask

avatar
s*s
8
我就玲个包,直接走得了。

【在 a****i 的大作中提到】
: 都好像需要,就是小剪刀也用的着,呵呵。
avatar
N*s
9
why not set mask = (1 << k) - 1 instead of the for loop?
avatar
a*i
10
啊?好潇洒。 我怎么得也把书和衣服带着。

【在 s****s 的大作中提到】
: 我就玲个包,直接走得了。
avatar
s*s
11
那你肯定没有迎接新生活这个状态和喜悦。

【在 a****i 的大作中提到】
: 啊?好潇洒。 我怎么得也把书和衣服带着。
avatar
a*i
12
是的,是的。
等我真正去了新地方,我就像你这样,潇洒一下,呵呵

【在 s****s 的大作中提到】
: 那你肯定没有迎接新生活这个状态和喜悦。
avatar
V*x
13
力气大也会腰酸背痛。。
我现在一看到搬家就头大。。
腰背不太扛折腾了。。><

【在 a****i 的大作中提到】
: 累的我胳膊疼,还没有完全弄好。
: 而且发现力气有些小。

avatar
a*i
14
我也是,看着那些东西就烦

【在 V***x 的大作中提到】
: 力气大也会腰酸背痛。。
: 我现在一看到搬家就头大。。
: 腰背不太扛折腾了。。><

avatar
s*n
15
一个人还是请搬家公司吧,花点钱,人舒服些。

【在 a****i 的大作中提到】
: 累的我胳膊疼,还没有完全弄好。
: 而且发现力气有些小。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。