動態(tài)規(guī)劃-最長回文子序列

解決方法一:

思路是找到所有的子序列判斷虚缎,中間有個if(s.charAt(i)==s.charAt(j))是判斷如果這個子序列的兩端不相等的話就不用判斷了炉峰,節(jié)省運(yùn)行時間徽龟。但還是用到了兩個for循環(huán)蟋软,運(yùn)行提交時時間超標(biāo)祷安。這個方法有改進(jìn)的話歡迎探討姥芥。

注意小點(diǎn):s.substring(i,j);是包括i不包括j即[i,j)

class Solution {

? ? public String longestPalindrome(String s) {

? ? ? ? int ans=0;

? ? ? ? int temp=0;

? ? ? ? if(s.length()==0) return s;

? ? ? ? if(s.length()==1) return s;

? ? ? ? char c=s.charAt(0);

? ? ? ? String anss=String.valueOf(c);

? ? ? ? for(int i=0;i<s.length();i++){

? ? ? ? ? ? for(int j=i+1;j<s.length();j++){

? ? ? ? ? ? ? ? if(s.charAt(i)==s.charAt(j)){

? ? ? ? ? ? ? ? ? ? if(ishw(i,j,s)){

? ? ? ? ? ? ? ? ? ? ? ? temp=j-i+1;

? ? ? ? ? ? ? ? ? ? ? ? if(temp>ans){

? ? ? ? ? ? ? ? ? ? ? ? ? ? ans=temp;

? ? ? ? ? ? ? ? ? ? ? ? ? ? anss=s.substring(i,j+1);

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? return anss;

? ? }


? ? public boolean ishw(int i,int j,String s){

? ? ? ? if(i==j) return true;

? ? ? ? else if(j==i+1&&s.charAt(i)==s.charAt(j)) return true;

? ? ? ? else if(j==i+1&&s.charAt(i)!=s.charAt(j)) return false;

? ? ? ? else{

? ? ? ? ? ? if(s.charAt(i)==s.charAt(j)) return ishw(i+1,j-1,s);

? ? ? ? ? ? else return false;

? ? ? ? }


? ? }

}

方法二:只用了一重循環(huán)

思路是回文子序列必是AA或者ABA的形式

class Solution {

? ? public String longestPalindrome(String s) {

? ? ? ? int ans=0;

? ? ? ? if(s.length()==0) return s;

? ? ? ? if(s.length()==1) return s;

? ? ? ? int st=0;int end=0;

? ? ? ? for(int i=0;i<s.length();i++){

? ? ? ? ? ? int l1=hwnumbers(i,i,s);

? ? ? ? ? ? int l2=hwnumbers(i,i+1,s);

? ? ? ? ? ? if(l1>l2) ans=l1;

? ? ? ? ? ? else ans=l2;

? ? ? ? ? ? if(ans>end-st){

? ? ? ? ? ? ? ? st=i-(ans-1)/2;

? ? ? ? ? ? ? ? end=i+ans/2;

? ? ? ? ? ? }


? ? ? ? }

? ? ? ? return s.substring(st, end + 1);

? ? }


? ? public int hwnumbers(int i,int j,String s){


? ? ? ? while(i>=0&&j<s.length()&&s.charAt(i)==s.charAt(j)) {

? ? ? ? ? ? i--;

? ? ? ? ? ? j++;

? ? ? ? }

? ? ? ? return j-i-1;

? ? }

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市汇鞭,隨后出現(xiàn)的幾起案子凉唐,更是在濱河造成了極大的恐慌,老刑警劉巖霍骄,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件台囱,死亡現(xiàn)場離奇詭異,居然都是意外死亡读整,警方通過查閱死者的電腦和手機(jī)簿训,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人强品,你說我怎么就攤上這事豺总。” “怎么了择懂?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵喻喳,是天一觀的道長。 經(jīng)常有香客問我困曙,道長表伦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任慷丽,我火速辦了婚禮蹦哼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘要糊。我一直安慰自己纲熏,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布锄俄。 她就那樣靜靜地躺著局劲,像睡著了一般。 火紅的嫁衣襯著肌膚如雪奶赠。 梳的紋絲不亂的頭發(fā)上鱼填,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天,我揣著相機(jī)與錄音毅戈,去河邊找鬼苹丸。 笑死,一個胖子當(dāng)著我的面吹牛苇经,可吹牛的內(nèi)容都是我干的赘理。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼扇单,長吁一口氣:“原來是場噩夢啊……” “哼商模!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起令花,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤阻桅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后兼都,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡稽寒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年扮碧,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡慎王,死狀恐怖蚓土,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情赖淤,我是刑警寧澤蜀漆,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站咱旱,受9級特大地震影響确丢,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吐限,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一鲜侥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧诸典,春花似錦描函、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至肌蜻,卻和暖如春基公,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背宋欺。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工轰豆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人齿诞。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓酸休,卻偏偏與公主長得像,于是被迫代替她去往敵國和親祷杈。 傳聞我的和親對象是個殘疾皇子斑司,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些閱讀 2,030評論 0 2
  • Java經(jīng)典問題算法大全 /*【程序1】 題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子但汞,小兔子...
    趙宇_阿特奇閱讀 1,864評論 0 2
  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 3,341評論 0 2
  • 貪心算法 貪心算法總是作出在當(dāng)前看來最好的選擇宿刮。也就是說貪心算法并不從整體最優(yōu)考慮,它所作出的選擇只是在某種意義上...
    fredal閱讀 9,231評論 3 52
  • /*【程序21】 * 作者 南楓題目:求1+2!+3!+...+20!的和 1. 程序分析:此程序只是把累加變成了...
    HUC南楓閱讀 435評論 0 0