gpt4 book ai didi

javascript - 计算子串最快的方法是什么

转载 作者:搜寻专家 更新时间:2023-11-01 04:11:47 26 4
gpt4 key购买 nike

我有一个巨大的“二进制”字符串,例如: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)然后根据需要用零包装结果。我不确定这有多快。

您还有其他想法吗?

最佳答案

字符串从哪里来?为什么不将字符串表示为十六进制而不是二进制,然后您可以将每个四位二进制数字部分存储为单个字符? (如果你愿意,你显然可以将它打包两倍,或者实际上现在我想到了 4 次,因为 Javascript 字符串是 16 位 Unicode)。然后查找单个组将是对“charAt()”的单个调用,您只需通过查找表扩展为二进制形式。

编辑 — 好吧,你已经有了一个数组。在那种情况下,根本不要做子串工作;这很疯狂。只需获取数组元素并通过查找数组将其转换为 4 位二进制数字字符串。

关于javascript - 计算子串最快的方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2929414/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com