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個變...