我有以下问题,假设我们已经给出字符串N,这样字符串N的长度可以达到250000。
现在在这个字符串中我们必须找到形式为XYXY的最长子字符串的长度,其中X是子字符串的一部分,Y是X的反转版本,这里是几个例子
N = PERREERREERREABC,P ER RE ER RE ERREABC,此处X = ER,Y = RE,此答案为12。
N = AAAA, A A A A X = A,Y = A,所以答案是4
N = ABCDDCBAFE,这里我们有XY格式的子字符串,但只有当存在XYXY格式的子字符串时才需要计数,所以这种情况下的答案是0。
我为此编写了强力解决方案,但这个时间限制太慢,我该如何改进呢?提前谢谢。
答案 0 :(得分:0)
我认为你可以使用堆栈来获得更好的解决方案,只有当它不等于堆栈顶部的字符时才会将字符推入堆栈中,否则就会弹出。
使用pop()操作时,可以存储一些字符串以保证XYXY
答案 1 :(得分:0)