1. 程式人生 > >尋找一個字串的所有迴文子字串

尋找一個字串的所有迴文子字串

問題描述:生成1T字串,尋找這個字串的迴文,如abcbabcbadd,其中迴文為abcbaabcba,bcb,bcb,dd。

問題1.

如果按照某個字元分組。比如a,那麼會分為bcb,bcb兩字串。但是不要忘記abcbabcba和dd也是迴文。

對於分組後的字串,比如abcdedcba。那麼前後兩側做減法。abcde-edcba=-4,-2-,0,2,4。再相減=-6,-6,兩側相加=6,6,6,6,6

兩種操作。都可以滿足迴文。

當然這種操作還是資料庫快一些。

問題2.

陣列擴充套件。比如我們認定aba是迴文的話。那麼就需要3個連續的字元做判斷。說以要把所有迴文的中間位置確定。陣列操作就很快。

但要把下一行的起始位置字元加在後面。還要把上一行的尾字元加在前面。比如@abad,adaba。這樣就判斷第2,3,4三列就會得到所有的中間位置。

其中@加在第一行前。第一行尾加了d。第二行首加了第一行的尾a。

問題3.