解题思路:将字符串与反转后的字符串跑一遍最长公共子序列就可以的出最长回文串的长度,减去字符串的长度就可以的出脱落的个数
注意事项:
参考代码:
#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语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:501 |
【出圈】 (C语言代码)浏览:794 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:574 |
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:611 |
C二级辅导-公约公倍 (C语言代码)浏览:482 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:443 |
数列有序 (C语言代码)浏览:931 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:762 |
【魔板】 (C++代码)浏览:1157 |
【偶数求和】 (C++代码)浏览:698 |