51Nod 1092 回文字符串 | 最长公共子序列变形
Posted kimsimple
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51Nod 1092 回文字符串 | 最长公共子序列变形相关的知识,希望对你有一定的参考价值。
求字符串和其逆的最长公共子序列,需要添加的字符数就为长度-最长公共子序列长
#include "stdio.h" #include "string.h" #define maxn 1005 char s[maxn],s1[maxn]; int dp[maxn][maxn]; int main() { int n=0,i,j,len; scanf("%s",s); len=strlen(s); strcpy(s1,s); strrev(s1); for(i=0;i<len;i++) { for(j=0;j<len;j++) { if(s[i]==s1[j]) dp[i+1][j+1]=dp[i][j]+1; else dp[i+1][j+1]=dp[i+1][j]>dp[i][j+1]?dp[i+1][j]:dp[i][j+1]; } } printf("%d\\n",len-dp[len][len]); }
以上是关于51Nod 1092 回文字符串 | 最长公共子序列变形的主要内容,如果未能解决你的问题,请参考以下文章