回文字符串
2016-04-27 21:31
260 查看
和那个 括号匹配 , 郑轻的比赛项链 , 和 普通的括号匹配 差不多 , 明天需要把这些做一下 , 然后总结一下
#include<stdio.h> #include<string.h> #include<math.h> #include<iostream> #include<algorithm> #include<queue> #include<vector> #include<set> #include<stack> #include<string> #include<sstream> #include<map> #include<cctype> #include<limits.h> using namespace std; // 类似于 括号匹配 . 但是还是有 不少区别的 . int t,l,dp[1005][1005]; int main() { char a[1005]; scanf("%d",&t); while(t--) { scanf("%s",a+1); // 这样 就从 第一个 开始了 l=strlen(a+1); for(int i=0;i<=l;i++) dp[i][i]=dp[i][i-1]=0; for(int q=1;q<l;q++) { for(int i=1;i<=l-q;i++) { int j=i+q; dp[i][j]=10000; if(a[i]==a[j]) dp[i][j]=dp[i+1][j-1]; dp[i][j]=min(dp[i][j],dp[i+1][j]+1); dp[i][j]=min(dp[i][j],dp[i][j-1]+1); } } printf("%d\n",dp[1][l]); } return 0; }
上述是一种经典的解法 , 但是暂时想不出来应该怎么弄出来 , 回文串 , 可以和最长公共子串联系起来 . 第一种是 , 经典的正规军 , 高效专业 , 第二种就是 举一反三了 . 效率不是太高 .
#include<stdio.h> #include<string.h> #include<math.h> #include<iostream> #include<algorithm> #include<queue> #include<vector> #include<set> #include<stack> #include<string> #include<sstream> #include<map> #include<cctype> #include<limits.h> using namespace std; char a[2222],b[2222]; int c[500][500]; int main() { int i=0,j=0,a1,b1,t; scanf("%d",&t); while(t--) { scanf("%s",a); a1=strlen(a); for(int i=0;i<a1;i++) b[i]=a[a1-i-1]; memset(c,0,sizeof(c)); for(i=1;i<=a1;i++) { for(j=1;j<=a1;j++) { if(a[i-1]==b[j-1]) c[i][j]=c[i-1][j-1]+1; // 相等的话 取 右上角 else c[i][j]=max(c[i-1][j],c[i][j-1]); // 不相等 的话 在 左边或上边 取一个最大的 } } printf("%d\n",c[a1][b1]); } return 0; }
把上面说的 几种题型再过一遍 , 可能就对那个 动态规划的 核心代码有了一定的了解 .
相关文章推荐
- 解决spring mvc中ajax传值所报的错误400 415
- leetcode-20. Valid Parentheses
- 【Linux】Red Hat Linux 图形界面切换命令界面
- Mybatis最入门---分页查询(拦截器分页原理及实现)
- python中文编码坑
- Power Designer使用方法
- UVA 10245 The Closest Pair Problem【分治】
- JAVA——如何停止线程呢?(interrupt)
- 杭电2006
- 如何避免大量重复URL被百度收录
- UVA 10245 The Closest Pair Problem【分治】
- UVA 10245 The Closest Pair Problem【分治】
- 透过代理获取客户端请求的真实ip
- leetcode 86. Partition List
- php示例代码
- leetcode 046 Permutations
- String和Stingbuffer赋值""区别
- leetcode-19. Remove Nth Node From End of List
- 算法
- double linked list双向链表