2021-02-02 之 516. 最長回文子序列

題目地址(516. 最長回文子序列)

https://leetcode-cn.com/problems/longest-palindromic-subsequence/

題目描述

給定一個字符串 s 斜友,找到其中最長的回文子序列橄霉,并返回該序列的長度。可以假設 s 的最大長度為 1000 。

示例 1:
輸入:
"bbbab"
輸出:
4
一個可能的最長回文子序列為 "bbbb"。

示例 2:
輸入:
"cbbd"
輸出:
2
一個可能的最長回文子序列為 "bb"。

提示:
1 <= s.length <= 1000
s 只包含小寫英文字母

思路

假設dp[i][j]為i到j的最長子序列贤惯,當i=j時,單個字符棒掠,最長回文子序列就是他自己孵构,為1.
先往兩邊擴展,可以就直接拓展2個烟很,不行就看往左拓展回文子序列長還是往右拓展一個字符子序列長颈墅。
如果s[i]==s[j],說明當前兩個字符可以納入回文子序列雾袱,此時dp[i][j]=dp[i+1][j-1]+2, (前一個狀態(tài)dp[i+1][j-1]直接拓展兩個長度)這是從最右邊逐個字符往兩邊拓展恤筛。
如果s[i]!=s[j],dp[i][j] = Max(dp[i+1][j], dp[i][j-1])芹橡,s[i]和sj對構成回文子序列沒用毒坛,i到j的最長回文子序列就為,前一個狀態(tài)s[i+1][j-1]向右拓展一個字符或向左拓展一個字符的回文子序列的最大值。

題解

/**
 * @Author: vividzcs
 * @Date: 2021/2/2 11:22 下午
 */
public class LongestSubSquence {
    public static void main(String[] args) {
        String s = "bbbab";
        int len = getLongestSubSquence(s);
        System.out.println(len);
    }

    private static int getLongestSubSquence(String s) {
        if (s == null || s.length() <= 2) {
            return s.length();
        }

        int[][] dp = new int[s.length()][s.length()];
        for (int i=0; i<dp.length; i++) {
            dp[i][i] = 1;
        }
        for (int i=s.length() - 1; i >= 0; i--) {
            for (int j=i+1; j < s.length(); j++) {
                if (s.charAt(i) == s.charAt(j)) {
                    dp[i][j] = dp[i+1][j-1] + 2;
                } else {
                    dp[i][j] = Math.max(dp[i+1][j], dp[i][j-1]);
                }
            }
        }
        return dp[0][s.length()-1];
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末煎殷,一起剝皮案震驚了整個濱河市屯伞,隨后出現的幾起案子,更是在濱河造成了極大的恐慌豪直,老刑警劉巖劣摇,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異顶伞,居然都是意外死亡饵撑,警方通過查閱死者的電腦和手機剑梳,發(fā)現死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門唆貌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人垢乙,你說我怎么就攤上這事锨咙。” “怎么了追逮?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵酪刀,是天一觀的道長。 經常有香客問我钮孵,道長骂倘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任巴席,我火速辦了婚禮历涝,結果婚禮上,老公的妹妹穿的比我還像新娘漾唉。我一直安慰自己荧库,他們只是感情好,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布赵刑。 她就那樣靜靜地躺著分衫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪般此。 梳的紋絲不亂的頭發(fā)上蚪战,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天,我揣著相機與錄音铐懊,去河邊找鬼屎勘。 笑死,一個胖子當著我的面吹牛居扒,可吹牛的內容都是我干的概漱。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼喜喂,長吁一口氣:“原來是場噩夢啊……” “哼瓤摧!你這毒婦竟也來了竿裂?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤照弥,失蹤者是張志新(化名)和其女友劉穎腻异,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體这揣,經...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡悔常,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了给赞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片机打。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖片迅,靈堂內的尸體忽然破棺而出残邀,到底是詐尸還是另有隱情,我是刑警寧澤柑蛇,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布芥挣,位于F島的核電站,受9級特大地震影響耻台,放射性物質發(fā)生泄漏空免。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一盆耽、第九天 我趴在偏房一處隱蔽的房頂上張望蹋砚。 院中可真熱鬧,春花似錦征字、人聲如沸都弹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽畅厢。三九已至,卻和暖如春氮昧,著一層夾襖步出監(jiān)牢的瞬間框杜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工袖肥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留咪辱,地道東北人。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓椎组,卻偏偏與公主長得像油狂,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內容