最大字符串长度 - 避免子字符串 "AAA" 和 "BBB"
思路:贪心\n\n根据题目要求,新字符串不能包含子字符串 "AAA" 或者 "BBB",因此我们可以考虑尽可能地把 "AA" 和 "BB" 放在一起,把 "AB" 和 "BA" 放在两个相邻的位置。\n\n如果 x 和 y 中有一个为 0,那么我们可以直接将另一个字符串全部拼接起来,因为不会出现 "AAA" 或者 "BBB" 的情况。\n\n如果 x 和 y 中都不为 0,那么我们可以先将 "AA" 和 "BB" 交替拼接,最后再将剩下的 "AA" 或者 "BB" 拼接在末尾。\n\n如果 z 为 0,那么我们可以直接按照上述方法拼接 "AA" 和 "BB"。\n\n如果 z 不为 0,那么我们可以将 "AB" 和 "BA" 拼接在一起,这样可以消去其中一个字符,从而避免出现 "AAA" 或者 "BBB"。因此,我们可以先将 "AB" 和 "BA" 拼接到新字符串中,然后按照上述方法拼接 "AA" 和 "BB"。\n\n最终,新字符串的最大可能长度就是拼接后的字符串的长度。\n\n时间复杂度:O(x+y+z)\n\n空间复杂度:O(1)\n\nC++ 代码
原文地址: http://www.cveoy.top/t/topic/oTe9 著作权归作者所有。请勿转载和采集!