Lintcode108 Palindrome Partitioning || solution 題解

【題目描述】

Given a strings, cutsinto some substrings such that every substring is a palindrome.

Return the?minimum?cuts needed for a palindrome partitioning ofs.

給定一個字符串s,將s分割成一些子串,使每個子串都是回文。

返回s符合要求的的最少分割次數。

【題目鏈接】

www.lintcode.com/en/problem/palindrome-partitioning-ii/

【題目解析】

切割數部分使用動態規劃,優化的空間不大,仔細想想可以發現在判斷字符串是否為回文的部分存在大量重疊計算,故可引入動態規劃進行優化,時間復雜度可優化至到平方級別。

定義狀態PaMat[i][j] 為區間[i,j]是否為回文的標志, 對應此狀態的子問題可從回文的定義出發,如果字符串首尾字符相同且在去掉字符串首尾字符后字符串仍為回文,則原字符串為回文,相應的狀態轉移方程PaMat[i][j] = s[i] == s[j] && PaMat[i+1][j-1], 由于狀態轉移方程中依賴比i大的結果,故實現中需要從索引大的往索引小的遞推,另外還需要考慮一些邊界條件和初始化方式。

【參考答案】

www.jiuzhang.com/solutions/palindrome-partitioning-ii/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經驗。 張土汪:刷leetcod...
    土汪閱讀 12,769評論 0 33
  • 132. Palindrome Partitioning II 這道題考的是怎么用dp來解決dfs的問題如果僅使用...
    Isabella10閱讀 1,926評論 0 0
  • 分治方法 將問題劃分成互不相交的子問題 遞歸地求解子問題 將子問題的解組合起來 動態規劃(兩個要素:最優子結構、子...
    superlj666閱讀 515評論 0 0
  • 計算機二級C語言上機題庫(南開版) 1.m個人的成績存放在score數組中,請編寫函數fun,它的功能是:將低于平...
    MrSunbeam閱讀 6,453評論 1 42
  • LeetCode 刷題隨手記 - 第一部分 前 256 題(非會員),僅算法題,的吐槽 https://leetc...
    蕾娜漢默閱讀 17,920評論 2 36