我得到的字符串只包含0到9之间的数字。我想计算它们中有多少个子字符串是2的幂。
例如,对于子串2560616,子串256和16是2的幂。我需要计算任何给定子串中有多少这样的子串。
请注意,子字符串非常大,因此强力无法使用。所以我主要想解决2个问题
我认为可能有DP方法,但我不确定。
答案 0 :(得分:0)
使用以下算法从2的幂数字创建树:
这棵树在内存中可能需要几个GB。
现在你有了你的树。要计算2的幂的子串数,请执行以下操作:
算法的描述不是"考试准备",但我希望它足够可理解。