链接:https://ac.nowcoder.com/acm/contest/301/E
来源:牛客网

小乐乐有字符串str1,str2。

小乐乐想要给他们找朋友。

小乐乐想知道在这两个字符串中最多能匹配出多长的相同子串(可非连续)。

输入描述:

第一行输入字符串str1;第二行输入字符串str2;数据保证字符串长度小于1000,且非空,字符串仅由小写字母组成。

输出描述:

输出最长相同子串的长度。

示例1

输入

复制

asd
ad

输出

复制

2

题解:这个问题是被称为最长公共子序列问题(LCS),我们定义一个二维数组dp;

dp[i][j]=s1......si和t1......tj对应的LCS的长度

所以:
          s1......si和t1......tj对应的公共子列可能是:
                   1.当s(i+1)=t(i+1)时,在s1...si和t1...ti的公共子列末尾追加上s(i+1)
                   2.s1...si和t1...t(j+1)的公共子列
                   3.s1...s(i+1)和t1...tj的公共子列
          这三个中的某一个,所以我们就得到了一个递推公式:
          
         到最后的dp[n][m]就是LCS的长度。

#include <iostream>
#include <cmath>
using namespace std;
int dp[2000][2000]={0};
int main(){string a,b;cin>>a>>b;int num1=a.length();int num2=b.length();for(int i=1;i<=a.length();i++){for(int j=1;j<=b.length();j++){if(a[i-1]==b[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[num1][num2]<<endl;return 0;
}

哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(高年级)---E---小乐乐匹配字符串(最长公共子序列)相关推荐

  1. 【牛客 - 301哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(高年级 )】小乐乐和25(模拟,技巧)

    题干: 小乐乐特别喜欢25这个数字,他想把所有的数字都变成25的倍数. 现在小乐乐得到一个数字,想问问你最少用几次操作才可以把这个数字改造成25的倍数. 对于一次操作我们可以把相邻的两位做交换,比如1 ...

  2. 【牛客 - 301哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(高年级)】小乐乐搭积木(状压dp)

    题干: 小乐乐想要给自己搭建一个积木城堡. 积木城堡我们假设为n*m的平面矩形. 小乐乐现在手里有1*2,2*1两种地砖. 小乐乐想知道自己有多少种组合方案. 输入描述: 第一行输入整数n,m.(1& ...

  3. 【牛客 - 301哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(高年级)】小乐乐下象棋(记忆化搜索dp,dfs)

    题干: 小乐乐一天天就知道玩,这一天又想玩象棋. 我们都知道马走日. 现在给定一个棋盘,大小是n*m,把棋盘放在第一象限,棋盘的左下角是(0,0),右上角是(n - 1, m - 1); 小乐乐想知道 ...

  4. *【牛客 - 301哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(高年级)】小乐乐打游戏(bfs,双元bfs,思维)

    题干: 小乐乐觉得学习太简单了,剩下那么多的时间好无聊,于是便想打游戏.         最近新出了一个特别火的游戏,叫吃猪,小乐乐准备玩一玩.         吃猪游戏很简单,给定一个地图,大小为n ...

  5. 【牛客 - 302哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(低年级)】小乐乐切割方块(思维,水题)

    题干: 小乐乐的作业本是2n*2n的方格本. 某天小乐乐的童鞋,想要考验一下小乐乐. 他将小乐乐的一张方格纸中的某个格子(x,y)涂成黑色, 小乐乐能否在将4*4的方格本沿着方格边缘且切割线与黑色方格 ...

  6. 【牛客 - 302哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(低年级)】小乐乐吃糖豆 (fIb博弈)

    题干: 小乐乐是一个比较喜欢吃糖豆的小孩子,小乐乐的哥哥大乐乐也同样爱吃糖豆. 作为一个小孩子,他们永远觉得谁吃掉了最后一个糖豆,谁吃的糖豆最多. 为了公平起见小乐乐与大乐乐商量吃糖豆的规则如下: 1 ...

  7. 【牛客 - 302哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(低年级)】 小乐乐算数字(水题,快速幂,lowbit)

    题干: 小乐乐最喜欢玩数字了. 小乐乐最近迷上了2这个整数,他觉得2的幂是一种非常可爱的数字. 小乐乐想知道整数x的最大的 2的幂 (2^y)的因子. y为整数. 输入描述: 输入整数x.(1< ...

  8. 【牛客 - 301哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(高年级)】小乐乐的组合数+(取模,数学,思维)

    题干: 小乐乐得知一周有7天之后就对7产生了兴趣. 小乐乐得到了两堆数字数字时连续的. 第一堆包含[1,n]n个数字,第二堆包含[1,m]m个数字. 小乐乐想要从两堆中各挑选出一个整数x,y,使得x, ...

  9. 哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(低年级)I 小乐乐切方块

    链接:https://ac.nowcoder.com/acm/contest/302/I 来源:牛客网 题目描述 小乐乐的作业本是2n*2n的方格本. 某天小乐乐的童鞋,想要考验一下小乐乐. 他将小乐 ...

  10. 哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(高年级) 小乐乐的组合数+

    题目: 链接:https://ac.nowcoder.com/acm/contest/301/A 来源:牛客网 题目描述 小乐乐得知一周有7天之后就对7产生了兴趣. 小乐乐得到了两堆数字数字时连续的. ...

最新文章

  1. Microsoft Dynamics CRM 2013 试用之系统篇 正式安装 Microsoft Dynamics CRM Server 2013
  2. 【视频课】一课彻底掌握深度学习图像分类各种问题,学习CV你值得拥有
  3. ubuntu18.04(修改环境变量
  4. 参数NLS_LENGTH_SEMANTICS的设置问题
  5. Kubernetes 上容器的启动顺序如何把控?
  6. 小学计算机小蘑菇教案,森林里的小蘑菇教案.doc
  7. 阿里云POLARDB 2.0重磅来袭!为何用户如此的期待?
  8. 马云达沃斯金句:蠢是最大的疾病 比癌症还坏
  9. 图像处理中的几种预处理方式
  10. FlashFXP 自动上传备份到指定FTP服务器的方法
  11. windows7无法在域中找到计算机账户,关于Windows 7电脑加入域的问题
  12. 【修复收藏功能、更新登录接口】知识付费小程序、博客小程序、完整版开源源码、资源变现小程序
  13. python 百度ai json解析_百度AI接口调用
  14. Periodic Strings
  15. root 红米note5_怎么开启红米Note 5的ROOT权限
  16. Java大牛呕心沥血经历——技术面试与HR谈薪资技巧...
  17. 请求servlet操作成功后,在JSP页面弹出提示框
  18. 【阿拉伯数字转中文汉字工具类】
  19. 当遇到error: stray ‘\241‘ in program错误的解决方法
  20. CSDN的迷你博客为什么冷冷清清?

热门文章

  1. 网站内容运营需要做哪些工作呢?
  2. vue3 串联表格 匹配上方和左侧(个人笔记)
  3. c语言fgetc函数作用,C语言中fgetc函数的使用方法
  4. this.getOptions is not a function at Object.loader
  5. 【线下沙龙】北京-“ 云计算·风向“——2016名为PaaS的热带气旋
  6. 【CSS】标签选择器、类选择器和ID选择器的区别
  7. DualPivotQuicksort两枢轴快速排序
  8. iMazing最新版本Win64位系统详细安装教程
  9. POOLED和UNPOOLED源码分析
  10. LeetCode每日一题 - 速算机器人