解题思路:将字符串与反转后的字符串跑一遍最长公共子序列就可以的出最长回文串的长度,减去字符串的长度就可以的出脱落的个数
注意事项:
参考代码:
#include<bits/stdc++.h> using namespace std; int dp[1005][1005]; int main() { char a[1005],b[1005]; scanf("%s",a+1); int len; len=strlen(a+1); for(int i=1;i<=len;i++) { b[i]=a[len-i+1]; //cout<<b[i]; } memset(dp,0,sizeof(dp)); for(int i=1;i<=len;i++) { for(int j=1;j<=len;j++) { if(a[i]==b[j]) { dp[i][j]=dp[i-1][j-1]+1; } else { dp[i][j]=max(dp[i-1][j],dp[i][j-1]); } } } cout<<len-dp[len][len]; return 0; }
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:509 |
【密码】 (C语言代码)浏览:333 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:578 |
关于float,double变量的几点说明浏览:1810 |
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:564 |
排序算法(选择,插入,冒泡)浏览:774 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:558 |
小O的图案 (C语言代码)浏览:912 |
统计立方数 (C语言代码)浏览:863 |
简单的a+b (C语言代码)浏览:645 |