【发布时间】:2019-02-04 11:53:08
【问题描述】:
最近在一次采访中,我被要求编写一个程序来查找在二进制字符串中包含相等数量的0s 和1s 的最大子字符串。
例如:
如果给定的字符串是1010111,那么输出将是1010,因为它包含2个0s和2个1s。
我尝试了很多,但无论如何都想不出为这个东西构建算法。
有人可以让我先了解如何继续或使用什么数据结构来解决这个问题吗?
【问题讨论】:
-
如果您将 0 值视为 -1 会有帮助吗?将问题简化为找到总和为 0 的数组的最大长度?
-
不会
0101(从第一个 0 开始)也可以吗?还是它是第一个被发现的? -
@SamerTufail 我认为考虑到任何2个数字甚至字符都可以替换这个问题,所以我认为找到0的总和是不正确的
-
@M.K 因为重点是找最长的,所以我觉得
0101也可以考虑 -
搜索互联网会帮助您找到一些算法和实现。例如,我在这里找到了一个:geeksforgeeks.org/…
标签: algorithm language-agnostic