1092 回文字串
基準時間限制:1 秒 空間限制:131072 kb 分值: 10
難度:2級演算法題
回文串是指aba、abba、cccbccc、aaaa這種左右對稱的字串。每個字串都可以通過向中間新增一些字元,使之變為回文字串。
例如:abbc 新增2個字元可以變為 acbbca,也可以新增3個變為 abbcbba。方案1只需要新增2個字元,是所有方案中新增字元數量最少的。
input
輸入乙個字串str,str的長度 <= 1000。output
輸出最少新增多少個字元可以使之變為回文字串。input示例
abbcoutput示例
思路:第一次知道這回文串還能和lcs聯絡在一起。還是太年輕啊!。
把串倒置,然後找到兩個串的最長公共子串行。
原因:增加乙個字元使其程式設計回文與刪除這個對應的字串的效果相同
#include #include #include using namespace std;
int dp[1005][1005];
int main()
}cout<
51NOD 1092 回文字串 LCS
q 給定乙個串,問需要插入多少字元才能使其成為回文串,也就是左右對稱的串。經典求lcs題,即最長公共子串行,不用連續的序列。考慮o n2 解法,求lcs起碼得有兩個串,題中才給了乙個串,另乙個需要自己造,將給定的串反置,然後求這兩個串的lcs。假設兩個串為str1和str2,想辦法將規模降低,分兩種...
51Nod 1092 回文字串 LCS跟dp
1092 回文字串 基準時間限制 1 秒 空間限制 131072 kb 分值 10 難度 2級演算法題 回文串是指aba abba cccbccc aaaa這種左右對稱的字串。每個字串都可以通過向中間新增一些字元,使之變為回文字串。例如 abbc 新增2個字元可以變為 acbbca,也可以新增3個變...
1092 回文字串(LCS)
1 秒131,072 kb 10 分 2 級題 回文串是指aba abba cccbccc aaaa這種左右對稱的字串。每個字串都可以通過向中間新增一些字元,使之變為回文字串。例如 abbc 新增2個字元可以變為 acbbca,也可以新增3個變為 abbcbba。方案1只需要新增2個字元,是所有方案...