在乙個字串中查詢最長回文子串

2021-09-30 07:13:42 字數 501 閱讀 7020

先講一下自己的思想:

1. 設定三個指標ppre,pre,post,依次指向字串第乙個,第二個,第三個。判斷第乙個和第二個(回文子串長度為偶數時);判斷第乙個和第三個(回文子串長度為奇數時)。設定乙個num[size]陣列記錄回文子串的長度,乙個ptr[size]指標陣列記錄回文子串的第乙個子串。

2. 首先將字串小於3的情況進行處理,然後大於等於3時,將ppre,pre,post依次賦值。

3. 設定迴圈,先判斷ppre和post是否相等。若相等,就將ppre--和post++繼續進行比較;不相等時,跳出,並將post值復原。再判斷pre和post的值是否相等,若相等,就將pre--和post++繼續進行比較;不相等時,跳出,並將post值復原。以上兩個跳出後,注意記錄回文子串的長度和首位址到num[size]和ptr[size]中。完成後,將ppre,pre和post依次向前走一步,繼續。

4. 最後將記錄的值賦值到str中。

程式中的乙個bug時,當遇到相同長度的回文字串時,輸出第乙個回文子串。

在乙個字串中找出最長回文子串

如何高效的在乙個字串中找到最長的回文子串呢?下面我們根據 來分析 首先,回文串有兩種,一種是字串的長度是偶數,另一種就是奇數。我們從字串第二個字元開始,我們把當前起始字元叫做i。先檢驗奇數長度的字串,對比該字元的前乙個和後乙個 i 1 和 i 1 一共三個字元 奇數個 如果前後字元相同則說明是回文串...

在乙個字串中尋找另外乙個字串

在乙個字串中尋找另外乙個字串 public class text foundit true break test system.out.println foundit?found it didn t find it 該段程式有點難以理解,主要就是if語句的理解,if searchme.charat ...

leetcode 求乙個字串的最長回文子串

最長回文子串問題 給定乙個字串,求它的最長回文子串長度。如果乙個字串正著讀和反著讀是一樣的,那它就是回文串。給定乙個字串,求它最長的回文子串長度,例如輸入字串 35534321 它的最長回文子串是 3553 所以返回 4。最容易想到的辦法是列舉出所有的子串,然後一一判斷是否為回文串,返回最長的回文子...