我昨天在算法测试中遇到了这个问题,但我无法找出答案,这让我非常疯狂,因为它占了大约40分。 我觉得大多数同学没有正确解决它,因为我过去24小时内也没有找到解决方案。
给定长度为n的任意二进制字符串,如果存在三个等间距的1,请编写一个算法在O(n*log(n))的时间内解决此问题。
像这样的字符串有三个“等间距”的1:11100000、0100100100
编辑:这是一个随机数,所以它应该适用于任何数字。 我给出的例子是为了说明“等间距”属性。 因此,1001011是一个有效的数字,其中1、4和7是等间距的1。