HDU 1159 Common Subsequence
来源:互联网 发布:淘宝主图ps无缝拼接 编辑:程序博客网 时间:2024/06/02 04:32
原题链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1159
题目大意:
给你两个字符串。找出他们的最大公共字串
思路:
逐个匹配。并用DP数组记录下。到这个位置最多有多少个字符匹配
具体想法看代码注释
代码如下:
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;char str1[500],str2[500];//用来存放两个字串int dp[500][500];int main(){ while( scanf("%s %s",str1,str2) != EOF ) { int len1 = strlen( str1 ); int len2 = strlen( str2 ); int i,j; //补齐空行,便于后面的代码操作 //第一个串竖放,第二个串横放 for( i = 0; i <= len1; i++ ) dp[i][0] = 0; for( j = 0; j <= len2; j++ ) dp[0][j] = 0; //逐个匹配 for( i = 0; i < len1; i++ ) for( j = 0; j < len2; j++ ) { //如果当前项匹配。那么就把前一项已经匹配好的最大值+1赋值给当前的DP就可以了 if( str1[i] == str2[j] ) dp[i+1][j+1] = dp[i][j] + 1; //如果不匹配。那么这个位置DP的值就为。从(第一个串)i位置开始匹配到的个数多,还是(第二个串)j位置在之前的位置匹配的多 else dp[i+1][j+1] = max( dp[i+1][j],dp[i][j+1] ); } printf("%d\n",dp[len1][len2]); } return 0;}
0 0
- hdu 1159 Common Subsequence
- HDU 1159 Common Subsequence
- HDU 1159 Common Subsequence
- hdu 1159 Common Subsequence
- HDU 1159 Common Subsequence
- HDU 1159 Common Subsequence
- hdu 1159 Common Subsequence
- hdu 1159 Common Subsequence
- hdu 1159 Common Subsequence
- Common Subsequence hdu 1159
- HDU 1159 Common Subsequence
- HDU 1159 Common Subsequence
- hdu 1159 Common Subsequence
- hdu 1159 Common Subsequence
- HDU 1159 Common Subsequence
- hdu 1159 Common Subsequence
- hdu 1159 Common Subsequence
- hdu 1159 Common Subsequence
- DropDownListView下拉刷新和上拉加载和没有更多
- iOS URL缩短
- 计算机网络组网与配置技术—— 读书笔记3、传输介质和组网连接方法
- MFC程序的启动过程与相关函数执行顺序
- 调整数组顺序,使得奇数总位于偶数前面
- HDU 1159 Common Subsequence
- 曲线解决Android中对布局的截屏
- 访问pci设备中寄存器的一些方法
- 要从5个人中选取2个人作为礼仪,其中每个人的身高范围为160-190,要求2个人的身高差值最小(如果差值相同的话,选取其中最高的两人),以升序输出两个人的身高。
- 数据结构之伸展树(Splay)--BST的变种
- ndk-stack的使用
- DNA序列(uva-1368)
- pdf转换成html网页的操作方法
- Facebook产品设计总监!设计APP时的14个必考题