2016sdau课程练习专题三 1002
2016-05-27 20:29
148 查看
1.题目编号
1002
2.简单题意
题目的大体意思就是给你两个字符串,要求你找出两个字符串中相同字符的个数
3.解题思路
设dp[i][j]是字符串s1的第i和字符串s2的第j个字符为止的最长公共子序列的长度,则由题意得(1)s1[i-1]==s2[j-1]时,dp[i][j]=dp[i-1][j-1]+1;(2)s1[i-1]!==s2[j-1]时,dp[i][j]=max(dp[i+1][j],dp[i][j+1]).
4.感想
和题目a相似,但不好做,题目这么长都看不懂
5.代码
#include <iostream>
#include <cstring>
using namespace std;
char s1[1000];
char s2[1000];
int dp[1000][1000];
int main()
{
int i,j;
int Max;
int len1,len2;
while(cin>>s1>>s2)
{
len1=strlen(s1);
len2=strlen(s2);
for(i=0;i<len1;i++)
{
dp[i][0]=0;
}
for(i=0;i<len2;i++)
{
dp[0][i]=0;
}
for(i=1;i<=len1;i++)
{
for(j=1;j<=len2;j++)
{
if(s1[i-1]==s2[j-1])
{
dp[i][j]=dp[i-1][j-1]+1;
}
else
{
dp[i][j]=max(dp[i+1][j],dp[i][j+1]);
}
}
}
cout<<dp[len1][len2]<<endl;
}
return 0;
}
1002
2.简单题意
题目的大体意思就是给你两个字符串,要求你找出两个字符串中相同字符的个数
3.解题思路
设dp[i][j]是字符串s1的第i和字符串s2的第j个字符为止的最长公共子序列的长度,则由题意得(1)s1[i-1]==s2[j-1]时,dp[i][j]=dp[i-1][j-1]+1;(2)s1[i-1]!==s2[j-1]时,dp[i][j]=max(dp[i+1][j],dp[i][j+1]).
4.感想
和题目a相似,但不好做,题目这么长都看不懂
5.代码
#include <iostream>
#include <cstring>
using namespace std;
char s1[1000];
char s2[1000];
int dp[1000][1000];
int main()
{
int i,j;
int Max;
int len1,len2;
while(cin>>s1>>s2)
{
len1=strlen(s1);
len2=strlen(s2);
for(i=0;i<len1;i++)
{
dp[i][0]=0;
}
for(i=0;i<len2;i++)
{
dp[0][i]=0;
}
for(i=1;i<=len1;i++)
{
for(j=1;j<=len2;j++)
{
if(s1[i-1]==s2[j-1])
{
dp[i][j]=dp[i-1][j-1]+1;
}
else
{
dp[i][j]=max(dp[i+1][j],dp[i][j+1]);
}
}
}
cout<<dp[len1][len2]<<endl;
}
return 0;
}
相关文章推荐
- 深入理解java异常处理机制(转)
- Mysql 索引
- 三种传值(Block、代理协议、通知)
- android socket通讯过程?
- poj 2752 Seek the Name, Seek the Fame
- SQL 游标cursor
- HIVE简单API使用
- Mysql 视图
- HTML5的canvas标签
- JavaScript五子棋
- 读《构造之法》8、9、10章有感
- 第二阶段冲刺第一天
- 动作系统的视觉结构 VisualSFM: A Visual Structure from Motion System
- 放平常心
- Mysql 触发器
- HTC Ubuntu 解锁
- 运行Activiti Explorer 项目
- 欢迎使用CSDN-markdown编辑器
- [HDOJ4738]Caocao's Bridges(双联通分量,割边,tarjan)
- 获取本地ip地址