1092 回文字串(LCS)

2021-09-02 00:04:08 字數 936 閱讀 9486

1 秒131,072 kb

10 分

2 級題

回文串是指aba、abba、cccbccc、aaaa這種左右對稱的字串。每個字串都可以通過向中間新增一些字元,使之變為回文字串。

例如:abbc 新增2個字元可以變為 acbbca,也可以新增3個變為 abbcbba。方案1只需要新增2個字元,是所有方案中新增字元數量最少的。

收起

輸入乙個字串str,str的長度 <= 1000。
輸出最少新增多少個字元可以使之變為回文字串。
abbc
2
/*lcs問題簡述:最長公共子串行

乙個數列 s,如果分別是兩個或多個已知數列的子串行,且是所有符合此條件序列中最長的,則s 稱為已知序列的最長公共子串行。

lcs問題的分支:最長公共子串與最長公共子串行

子串(substring)是串的乙個連續的部分,子串行(subsequence)則是從不改變序列的順序,而從序列中去掉任意的元素而獲得的新序列;更簡略地說,前者(子串)的字元的位置必須連續,後者(子串行lcs)則不必。比如字串acdfg同akdfc的最長公共子串為df,而他們的最長公共子串行是adf。

*/#include#include#include#includeusing namespace std;

char a[1011],c[1011];

int dp[1011][1011];

int main()

c[l]='/0';

memset(dp,0,sizeof(dp));

//reserve(c);

for(i=1;i<=l;i++)

else dp[i][j]=max(dp[i-1][j],dp[i][j-1]);

} }printf("%d\n",l-dp[l][l]);

//}

LCS 51NOD 1092 回文字串

1092 回文字串 基準時間限制 1 秒 空間限制 131072 kb 分值 10 難度 2級演算法題 回文串是指aba abba cccbccc aaaa這種左右對稱的字串。每個字串都可以通過向中間新增一些字元,使之變為回文字串。例如 abbc 新增2個字元可以變為 acbbca,也可以新增3個變...

51NOD 1092 回文字串 LCS

q 給定乙個串,問需要插入多少字元才能使其成為回文串,也就是左右對稱的串。經典求lcs題,即最長公共子串行,不用連續的序列。考慮o n2 解法,求lcs起碼得有兩個串,題中才給了乙個串,另乙個需要自己造,將給定的串反置,然後求這兩個串的lcs。假設兩個串為str1和str2,想辦法將規模降低,分兩種...

1092 回文字串

1092 回文字串 基準時間限制 1 秒 空間限制 131072 kb 分值 10 難度 2級演算法題 回文串是指aba abba cccbccc aaaa這種左右對稱的字串。每個字串都可以通過向中間新增一些字元,使之變為回文字串。例如 abbc 新增2個字元可以變為 acbbca,也可以新增3個變...