回文串
時間限制:c/c++ 1秒,其他語言2秒
空間限制:c/c++ 32768k,其他語言65536k
64bit io format: %lld
題目描述
既然大家都知道回文串是怎麼回事了,那我們就長話短說,現在有乙個字串,長度小於1200,我想知道最長的回文子串長度是多少。
輸入描述:
多組輸入,輸入字串只包含小寫字母。
輸出描述:
每組輸出乙個數字,表示最長的回文子串。
示例1輸入
複製aqppqole
ebcml
輸出複製41
#include
#include
intmain()
,b[1210]=
;//a全部為一 表示回文串至少為1 b全部置0
len=
strlen
(w);
//得到字串長度
for(i=
0;i)//找奇數回文子串
}
首先咱們開始分析奇數子串,在定義的時候我們選擇給a陣列全部賦值為1,因為子串至少為一,方便後面輸出,b陣列是找偶數子串的,後面會有解釋,如果我們要找更大的奇數子串,至少子串長度就是3了,讓j=i-1,k=i+1可以達到最小長度,當然我們找的時候j至少就要大於等於0了,k當然要小於字串長度,當w[j]==w[k]時,我們知道這是乙個子串,用a記錄其長度,讓j–,k++,再判斷長度為5時是不是還是回文串即可,偶數的略有不同,看**就明白;
#include
#include
intmain()
,b[1210]=
;//a全部為一 表示回文串至少為1 b全部置0
len=
strlen
(w);
//得到字串長度
for(i=
0;i)//找奇數回文子串
}for
(i=0
;i)//偶數回文找法
} max=1;
for(i=
0;i)printf
("%d\n"
,max);}
}
最長回文子串,中心擴充套件法 C語言
給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb 因為是找回文子串,所以使用中心擴充套件法,中心擴充套件有兩種,一種是以單個字元 i,i 為中心,乙個是...
C語言 最長回文子串
描述 輸入乙個字串,求其中最長回文子串。子串的含義是 在字串中連續出現得字串片段。回文的含義是,正著看和倒著看是相同的,如abba何abbebba。在判斷時要求忽略所有的標點和空格,且忽略大小寫。但輸出時按原樣輸出 首尾不要輸出多餘的字串 輸入字串長度大於等於1小於等於5000.且單獨佔一行。輸入 ...
最長回文子串(暴力法)
求最長回文子串最簡單最暴力的方法就是遍歷每乙個子串,看看這個子串是不是回文,是的話這個子串的長度有沒有最大的長度max大,遍歷每乙個子串的時間複雜度是o n 2 判斷乙個子串是不是回文子串的時間複雜度是o n 這三個for迴圈巢狀在一起所以時間複雜度為o n 3 include include in...