SSL_1463--公共子串(动规练习题)
来源:互联网 发布:网络排错大讲解 编辑:程序博客网 时间:2024/06/06 05:26
Description
设有A、B两个字符串,找出A、B共同子串,每个字符串无相同字符,可以不连续,但顺序不能颠倒。
Input
第一行字符串A
第二行字符串B
Output
最长公共子串的长度.
Sample Input
abcfbcabfcab
Sample Output
4
思路
用f[n][m]表示长度为n和m的公共子串的最长的长度
当a[i]!=b[j]时 f[i][j]=max(f[i-1][j],f[i][j-1];
当a[i]=b[j]时 f[i][j]=max(f[i][j],f[i-1][j-1]+1);
代码
#include<cstdio>#include<cstring>#define len strlen#define r(i,a,b) for (int i=a;i<=b;i++)using namespace std;char a[201],b[201];int f[201][201];int n,m;int max(int x,int y){return x>y?x:y;}int main(){gets(a);gets(b);//输入n=len(a);m=len(b);r(i,1,n) r(j,1,m) { f[i][j]=max(f[i-1][j],f[i][j-1]); if (a[i-1]==b[j-1]) f[i][j]=max(f[i][j],f[i-1][j-1]+1);//这里减一是因为C++是从第0位开始的 }printf("%d",f[n][m]);}
阅读全文
0 0
- SSL_1463--公共子串(动规练习题)
- 【例题】【动规(最长公共子 串/序列)】
- 动规-最长公共子序列
- 【动归经典】最长公共子串
- POJ-1458 Common Subsequence(线性动规,最长公共子序列问题)
- POJ 1458 Common Subsequence (动规,最长公共子序列)
- HDU 1159 Common Subsequence (动规+最长公共子序列)
- nyoj36 DP动规 最长公共子序列
- SSL_2293--暗黑游戏(动规练习题)
- 科技庄园(动规练习题)
- SSL_2295 暗黑破坏神(动规练习题)
- 练习题 No.6 最长公共子序(LCS)-附赠最长公共子串
- SSL_2292竞赛得分C++(动规练习题)
- SSL_1597石子合并问题(动规练习题)
- SSL_1203 书的复制(动规练习题)
- 【华为OJ平台练习题】求最大公共子串的个数和元素
- 公共字串计算(最长公共子串/序列)C++
- 求最长公共子串(串)
- 强制不让盒子内的content换行等样式
- Java 给图片添加文字功能
- Android--fragment从activity中获取数据
- 一个简单的loading
- SQL实战练习【1】
- SSL_1463--公共子串(动规练习题)
- superior drummer 3破解教程
- 数据结构实验之查找七:线性之哈希表
- VIJOS-P1134 24点游戏 dfs
- Spark RDD、DataFrame和DataSet的区别
- C#调用存储过程和函数
- final关键字使用
- 根据py-faster-rcnn的demo.py修改成c++版本
- JDBC 数据库连接