Manacher法

首先,爲了統一計算迴文串遇到的長度爲奇爲偶的情況,因此在迴文串的字符與字符之間加一個'#',首位賦'$',末位賦'\0'。因此我們要求的迴文串長度均是奇數。 考慮對每一位(從角標1開始),算他們的迴文串半徑。 正常的思路是: p[i]=1; while(s[i-p[i]]==s(s[i+p[i]])) p[i]++; 但是別忘了,我們已經在字符與字符之間加了一個'#',所以迴文串長度應該和算出的回
相關文章
相關標籤/搜索