A1647 | 最长公共子序列
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
存在序列 X 和 序列 Y,若有序列 Z 即是 X 的子序列,也是 Y 的子序列,则称 Z 是序列 X 和 序列 Y 的公共子序列。其中 X 和 Y 中,子序列最长的,则被称为 X 和 Y 的最长公共子序列。例如,若 X=<A, B, C, B, D, A, B> 和 Y=<B, D, C, A, B, A>,则序列 <B, C, A> 是 X 和 Y 的一个公共子序列, 序列 <B, C, B, A> 也是 X 和 Y 的一个公共子序列。而且,后者是 X 和 Y 的一个最长公共子序列。因为 X 和 Y 没有长度大于 4 的公共子序列。给定两个序列 X 和 Y,要求找出 X 和 Y 的一个最长公共子序列。
输入格式
共有两行。每行为一个由大写字母构成的长度不超过 1000 的字符串,表示序列 X 和 Y。
输出格式
一行为一个非负整数,表示所求得的最长公共子序列的长度。若不存在公共子序列.则输出文件仅有一行输出一个整数 0。
输入输出样例
输入 #1
ABCBDAB BDCABA
输出 #1
4
暂无题解
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?