【发布时间】:2022-01-21 06:48:01
【问题描述】:
我试图拆分二进制字符串,使每个子字符串具有相同数量的 1 和 0。我的意思是,给定一个像 0010110010 这样的字符串,它可以分成 00101 10010,两个子字符串都有 2 个 1 和 3 个 0。谁能指出我类似的东西。抱歉,我没有要分享的代码。
【问题讨论】:
-
这个问题似乎没有明确说明。像 (01)^n 这样的字符串可以以多种方式拆分,这些方式在 n 中是指数的。你对哪一个感兴趣?
-
@Gene:除非我遗漏了什么,否则 (01)ⁿ 只能以 O(n) 方式拆分:n 的每个除数都有一种方式。 (比如6的除数是1、2、3、6,所以010101010101可以拆分为一个子串(010101010101)、两个子串(010101和010101)、三个子串(0101、0101和0101),或者四个子字符串(01、01、01、01、01 和 01)。)但无论哪种方式,你都是对的,显然有不止一种可能性。
标签: algorithm binary substring combinations permutation