動態規劃
先去重, 再考慮狀態轉移
對於每個位置字元分別有兩種狀態, 獨立列印或一同列印, 再考慮到列印次數, 一維的\(dp(i)\)不夠描述狀態
再加一維, 每次連續列印時只考慮某2個字元屬於同乙個列印批次, 列出狀態轉移方程
\[dp(st, ed) = \begin
1 + dp(st+1, ed) & \\
dp(st, i-1) + dp(i+1, ed) & \text
\end \\
\]為了表示方便, 這裡\(\left\\)
最後使用遞迴方便地套上狀態轉移方程
class solution
// [st, ed]
int dp(string &s, unsigned long st, unsigned long ed)
dpary[st][ed] = len;
return len;
}};
Leetcode 664 奇怪的印表機
有台奇怪的印表機有以下兩個特殊要求 印表機每次只能列印同乙個字串行。每次可以在任意起始和結束位置列印新字元,並且會覆蓋掉原來已有的字元。給定乙個只包含小寫英文本母的字串,你的任務是計算這個印表機列印它需要的最少次數。示例 1 輸入 aaabbb 輸出 2 解釋 首先列印 aaa 然後列印 bbb 示...
奇怪的印表機 LeetCode664
有台奇怪的印表機有以下兩個特殊要求 印表機每次只能列印同乙個字串行。每次可以在任意起始和結束位置列印新字元,並且會覆蓋掉原來已有的字元。給定乙個只包含小寫英文本母的字串,你的任務是計算這個印表機列印它需要的最少次數。示例 1 輸入 aaabbb 輸出 2 解釋 首先列印 aaa 然後列印 bbb 示...
動態規劃 leetcode 664 奇怪的印表機
有台奇怪的印表機有以下兩個特殊要求 印表機每次只能列印同乙個字串行。每次可以在任意起始和結束位置列印新字元,並且會覆蓋掉原來已有的字元。給定乙個只包含小寫英文本母的字串,你的任務是計算這個印表機列印它需要的最少次數。示例 1 輸入 aaabbb 輸出 2 解釋 首先列印 aaa 然後列印 bbb 示...