没有连续 1 的二进制字符串的计数是多少?
让我们考虑一个例子来解释计算没有连续 1 的二进制字符串的概念。
示例
假设我们要统计长度为 3 且不包含连续 1 的二进制字符串的数量。二进制字符串是仅由 0 和 1 组成的字符串。
长度为 3 的可能二进制字符串为:000、001、010、011、100、101、110 和 111。
但是,我们只需要计算那些没有连续 1 的二进制字符串。因此,我们需要从计数中排除字符串 011、101 和 111。
让我们分析一下剩余的二进制字符串:
-
000:这是一个有效的字符串,因为它没有连续的 1。
-
001:这是一个有效的字符串,因为它没有连续的 1。
-
010:这是一个有效的字符串,因为它没有连续的 1。
-
100:这是一个有效的字符串,因为它没有连续的 1。
-
110:这是一个无效字符串,因为它有连续的 1。
从上面的分析可以看出,有4个长度为3的有效二进制串,且没有连续的1。
PHP 程序计算没有连续 1 的二进制字符串的数量
方法 1 - 使用动态规划
示例