Manacher法

首先,为了统一计算回文串遇到的长度为奇为偶的情况,因此在回文串的字符与字符之间加一个'#',首位赋'$',末位赋'\0'。因此我们要求的回文串长度均是奇数。 考虑对每一位(从角标1开始),算他们的回文串半径。 正常的思路是: p[i]=1; while(s[i-p[i]]==s(s[i+p[i]])) p[i]++; 但是别忘了,我们已经在字符与字符之间加了一个'#',所以回文串长度应该和算出的回
相关文章
相关标签/搜索