我的任务是编写一个算法,该算法得到一个字符串长度(如果它是正确的转换)并计算所有不包含双重空值的Bit字符串。
例如:" 10101"会算,而" 10010"不会算数。
我的问题是,我不知道bitstring的正确数据类型,有人可以帮忙吗?
答案 0 :(得分:0)
你的意思是你想找到给定长度的不包含“00”的位串数?
您可以在O(log(the_length))时间内执行此操作。对此的好算法实际上根本不使用任何位串,因此不需要位串数据类型。
如果你想实际制作位字符串并计算它们,那么使用最简单的方法 - 整数或1和0的字符串。您的语言可能使操作字符串更容易,并检查它们是否为双零。无论您使用何种数据类型,都需要O(2 ^ the_length)时间。这很好,因为你只是在学习,但无论如何都很慢,所以不要过于担心选择最有效的表现形式。