寻找串与其逆串的最长公共子序列。
因为此子序列必是回文串,剩下的字符就是需要插入的。
1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <cstring> 5 6 #define Max(a,b) a > b ? a : b 7 8 using namespace std; 9 10 char s1[5010],s2[5010]; 11 12 short int CountLen[5010][5010]; 13 14 int main() 15 { 16 int len; 17 while(~scanf("%d",&len)) 18 { 19 scanf("%s",(s1+1)); 20 21 int mid = len/2; 22 23 int i,j; 24 25 for(j = 1,i = len;i >= 1; --i,++j) 26 { 27 s2[j] = s1[i]; 28 } 29 30 s2[j] = '