問題描述:生成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.
在乙個字串中尋找另外乙個字串
在乙個字串中尋找另外乙個字串 public class text foundit true break test system.out.println foundit?found it didn t find it 該段程式有點難以理解,主要就是if語句的理解,if searchme.charat ...
求乙個字串的所有子字串 C語言
問題描述 從控制台讀入乙個字串 長度不超過10 向控制台輸出其所有子字串 包括原字串本身 輸入形式 從控制台輸入乙個字串,字串中不含空格。輸出形式 向控制台輸出所有子字串,每行輸出乙個,先輸出長度短的子字串,長度相同時以在原字串 現的先後順序輸出。樣例輸入 abcd 樣例輸出 ab cdabbc c...
leetcode 求乙個字串的最長回文子串
最長回文子串問題 給定乙個字串,求它的最長回文子串長度。如果乙個字串正著讀和反著讀是一樣的,那它就是回文串。給定乙個字串,求它最長的回文子串長度,例如輸入字串 35534321 它的最長回文子串是 3553 所以返回 4。最容易想到的辦法是列舉出所有的子串,然後一一判斷是否為回文串,返回最長的回文子...