【发布时间】:2011-02-25 03:26:59
【问题描述】:
我有一个巨大的“二进制”字符串,例如:1110 0010 1000 1111 0000 1100 1010 0111 ....
它的长度是0模4,可能达到500,000。
我也有对应的数组:{14, 2, 8, 15, 0, 12, 10强>, 7, ...}
(数组中的每个数字对应字符串中的4位)
给定这个字符串、这个数组和一个数字N,我需要计算以下子字符串string.substr(4*N, 4),即:
对于N=0,结果应该是1110
对于N=1,结果应该是0010
我需要多次执行这个任务,我的问题是计算这个子字符串最快的方法是什么?
一种方法是直接计算子字符串:string.substr(4*N, 4)。恐怕这个对于这么大的字符串效率不高。
另一种方法是使用array[N].toString(2),然后在需要时用零包装结果。我不确定这有多快。
你还有其他想法吗?
【问题讨论】:
-
我不知道你从哪里得到 substr 不快的概念。我不确定您的要求,但在一个简单的测试中,我制作了一个包含 500,000 个字符的字符串,然后在大约 169 毫秒内从中进行了 100,000 次随机子选择。
标签: javascript string substring