切分字符串让0和1个数相等 ? 待解决

来源:互联网 发布:程序员刚入职很闲 编辑:程序博客网 时间:2024/06/06 01:11

iejue***题目*:给定一个字符串,长度不超过100,其中只包含字符0和1,并且字符0和1出现得次数都是偶数。你可以把字符串任意切分,把切分后得字符串任意分给两个人,让两个人得到的0的总个数相等,得到的1的总个数也相等。
例如,输入串是010111,我们可以把串切位01, 011,和1,把第1段和第3段放在一起分给一个人,第二段分给另外一个人,这样每个人都得到了1个0和两个1。我们要做的是让切分的次数尽可能少。

思路
  笑威的思路:昨天那个01偶数的题目我有个贪心的思路,不知道对不对,感觉长度100的限制应该不对。不过没想到反例。先统计01的个数,然后从左向右,任意一个超过半数切割,然后开始分配给另外一个人,然后在切割,在给另外一个人分配。
  可以泛化为分配给n人,逻辑就是任意一个超过一人能拿到的最大值就前置切割,分配,统计。