poj 1458 求公共子串长度
来源:互联网 发布:java 组合算法 n选m 编辑:程序博客网 时间:2024/06/10 06:35
简单dp,串 s 和 串 t 。dp[i][j]表示 串s 的前i个字符 和 串 t 前j 个字符 中 公共的长度,那么 分析可得,如果 s[i]==t[j],那么dp[i+1][j+1]=dp[i][j]+1;
如果 s[i]!=t[j],那么 dp[i+1][j+1]=max(dp[i+1][j],dp[i][j+1])。。
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;const int maxn=10000;char s[maxn],t[maxn];int dp[maxn][maxn];int main(){while(scanf("%s%s",s,t)==2){int slen=strlen(s);int tlen=strlen(t);for(int i=0;i<slen;i++){dp[i][0]=0;for(int j=0;j<tlen;j++){dp[0][j]=0;if(s[i]==t[j])dp[i+1][j+1]=dp[i][j]+1;else {dp[i+1][j+1]=max(dp[i+1][j],dp[i][j+1]);}}}printf("%d\n",dp[slen][tlen]);}}
- poj 1458 求公共子串长度
- POJ 3415 Common Substrings (求长度大于K的公共子串个数,5级)
- POJ 3415 求两个字符串间长度不小于k的公共子串的个数
- POJ 题目2774 Long Long Message(后缀数组,求最长公共子串长度)
- 动态规划法求最长公共子串长度
- hdu 1403 Longest Common Substring(求公共子串长度)
- 求两个字符串的最长公共子串的长度
- 求两个字符串中的最长公共子串的长度
- 求两个字符串公共子串的最长长度
- 求2个字符串的最长公共子串长度
- 求两个字符串的最长公共子串的长度
- 求两个字符串最长公共子串的长度
- (Relax 后缀数组1.4)POJ 2774 Long Long Message(求两个字符串公共子串的最大长度)
- POJ - 3415 Common Substrings(后缀数组求长度不小于 k 的公共子串的个数+单调栈优化)
- 【笔试】求 最长公共子序列 和 最长公共子串的长度
- POJ 1458 最长公共子序列的长度
- poj 3415 长度超过K的公共子串个数
- Poj 2774两个字符串的最长公共子串长度
- what you like most in the city,why?
- 软件构建中的设计
- {{JS}}function语句
- linux下防DDOS工具
- 数学之美-关于概率
- poj 1458 求公共子串长度
- Jquery JQ AJAX 的使用
- 从纽约创业公司的崛起观察科技产业变革规律
- 实现输入框自动补全功能,类似于google suggest
- WinCE线程同步
- freebsd 8.2 中安装 fcitx
- EJB中的异常
- [生活]身体告诉你的密码。。。灰常经典。。。
- 数据挖掘比赛