蓝肽子序列
时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分

问题描述

  L 星球上的生物由蛋蓝质组成,每一种蛋蓝质由一类称为蓝肽的物资首尾连接成一条长链后折叠而成。
  生物学家小乔正在研究 L 星球上的蛋蓝质。她拿到两个蛋蓝质的蓝肽序列,想通过这两条蓝肽序列的共同特点来分析两种蛋蓝质的相似性。
  具体的,一个蓝肽可以使用 1 至 5 个英文字母表示,其中第一个字母大写,后面的字母小写。一个蛋蓝质的蓝肽序列可以用蓝肽的表示顺序拼接而成。
  在一条蓝肽序列中,如果选取其中的一些位置,把这些位置的蓝肽取出,并按照它们在原序列中的位置摆放,则称为这条蓝肽的一个子序列。蓝肽的子序列不一定在原序列中是连续的,中间可能间隔着一些未被取出的蓝肽。
  如果第一条蓝肽序列可以取出一个子序列与第二条蓝肽序列中取出的某个子序列相等,则称为一个公共蓝肽子序列。
  给定两条蓝肽序列,找出他们最长的那个公共蓝肽子序列的长度。

输入格式

  输入两行,每行包含一个字符串,表示一个蓝肽序列。字符串中间没有空格等分隔字符。

输出格式

  输出一个整数,表示最长的那个公共蓝肽子序列的长度。

测试样例1
Input:
LanQiaoBei
LanTaiXiaoQiao

Output:
2

Explanation:
最长的公共蓝肽子序列为 LanQiao,共两个蓝肽。
评测用例规模与约定

  对于 20% 的评测用例,两个字符串的长度均不超过 20。
  对于 50% 的评测用例,两个字符串的长度均不超过 100。
  对于所有评测用例,两个字符串的长度均不超过 1000。


代码如下:

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);String A = in.nextLine();String B = in.nextLine();String[] sA = new String[1000];int cnt1 = 0;int b1 = 0;for(int i=1;i<A.length();i++) {char now = A.charAt(i);if(now>='A'&&now<='Z') {sA[cnt1++]=A.substring(b1,i);b1 = i;}}sA[cnt1++] = A.substring(b1,A.length());String[] sB = new String[1000];int cnt2 = 0;int b2 = 0;for(int i=1;i<B.length();i++) {char now = B.charAt(i);if(now>='A'&&now<='Z') {sB[cnt2++]=B.substring(b2,i);b2 = i;}}sB[cnt2++] = B.substring(b2,B.length());int[][] dp = new int[cnt1+1][cnt2+1];for(int i=1;i<=cnt1;i++) {for(int j=1;j<=cnt2;j++) {if(sA[i-1].equals(sB[j-1])) dp[i][j]=dp[i-1][j-1]+1;else dp[i][j] = Math.max(dp[i][j-1], dp[i-1][j]);}}System.out.println(dp[cnt1][cnt2]);}
}

希望对大家有所帮助!

蓝桥杯——蓝肽子序列相关推荐

  1. 蓝桥杯 蓝肽子序列 python(2020动态规划)

    蓝桥杯 蓝肽子序列 python(2020动态规划) 题目描述 L 星球上的生物由蛋蓝质组成,每一种蛋蓝质由一类称为蓝肽的物资首尾连接成一条长链后折叠而成. 生物学家小乔正在研究 L 星球上的蛋蓝质. ...

  2. [蓝桥杯]蓝肽子序列(c++详解)

    这是一道求最长公共子串的题,首先得是公共子串,其次是长度得最长,再求其个数. 我们可以运用动态规划求解这题,设dp[i][j]的值为第一个序列的前i个子序列与第二个序列的前j个子序列的的最长公共子序列 ...

  3. 十一届蓝桥杯java组-蓝肽子序列-动态规划

    1. 思路-动态规划 典型的最长公共子串问题,可参考leetcode1143. 最长公共子序列,官方有详细解析,对动态规划还不了解的可以先学习动态规划的知识,去leetcode刷些相关题再看本题. 思 ...

  4. 蓝肽子序列 [蓝桥杯]

    蓝肽子序列,一个对 最长公共子序列 改版的题目. 原题传送 分析: 这是最长公共子序列的升级版,在最长公共子序列中是以一个 字符 为单位,现在是以一个 单词 为单位,我们可以把一个单词看作一个字符来处 ...

  5. 蓝桥杯-蓝跳跳(矩阵快速幂 70%数据)

    蓝桥杯-蓝跳跳(矩阵快速幂 70%数据) 题目描述 小蓝制作了一个机器人,取名为蓝跳跳,因为这个机器人走路的时候基本靠跳跃. 蓝跳跳可以跳着走,也可以掉头.蓝跳跳每步跳的距离都必须是整数,每步可以跳不 ...

  6. [蓝桥杯]最大连续子序列和

    对于一个给定的长度为N的整数序列A,它的"子序列"的定义是:A中非空的一段连续的元素(整数).你要完成的任务是,在所有可能的子序列中,找到一个子序列,该子序列中所有元素的和是最大的 ...

  7. 第十一届蓝桥杯大赛软件类决赛(2020javaB国赛)

    第十一届蓝桥杯大赛软件类决赛 Java 大 学 B 组 目录 第十一届蓝桥杯大赛软件类决赛 试题 A: 美丽的 2 试题 B: 扩散 试题 C: 阶乘约数 试题 D: 本质上升序列 试题 E: 玩具蛇 ...

  8. 2020第十一届蓝桥杯国赛JAVA B组真题解析(带源码及解析)

    蓝桥杯历年真题及解析. 目录 蓝桥杯历年真题及解析. A: 美丽的 2 题目: 分析: AC代码: B: 扩散 题目: 分析: AC代码: C: 阶乘约数 题目: 分析: AC代码: D: 本质上升序 ...

  9. 第十四届蓝桥杯三月真题刷题训练——第 23 天

    目录 第 1 题:长草 题目描述 输入描述 输出描述 输入输出样例 运行限制 代码: 思路: 第 2 题:蓝肽子序列_LCS_最长公共子序列dp问题 题目描述 输入描述 输出描述 输入输出样例 运行限 ...

最新文章

  1. 红帽 jboss_红帽正式宣布发布JBoss BPM Suite 6和JBoss BRMS 6
  2. 关于 JQuery 的克隆
  3. Java编程:树(基础部分)
  4. Java- String类概述
  5. java从入门到精通mac,Windows 平台Nginx + tomcat +memcached 集群
  6. mysql 字段_【MySql】mysql 字段个数的限制
  7. 如何将XDF转换成PDF(内容可编辑)
  8. webService简单概念
  9. Java原子类Atomic详解
  10. 【第1章】凸集——几种重要的凸集
  11. 亮温模型--相关概念
  12. 基于ESP32的蓝牙翻页器设计(论文附调试成功代码!!)
  13. uva 11021 数学概率 麻球
  14. 算法 博弈论( 初级Nim游戏)
  15. Win7系统下搭建NFS服务器
  16. Texstudio 英文拼写检查功能出问题的解决方法
  17. pytorch学习(五)---torch.nn模块
  18. linux下查看mysql线程_linux-如何查看线程在哪个CPU内核中运行?
  19. 人生最好走的路就是理想
  20. 新玺配资:市场强势修复 量能或成隐患

热门文章

  1. Java 字体颜色转换工具类 ColorUtil
  2. 色环电阻的电阻值大小的确定
  3. 雷电模拟器dnconsole命令汇总
  4. 年轻人需谨记的创富理念
  5. 应用现有EXCEL工作簿实现简单人事管理
  6. Angular2属性绑定
  7. PS 滤镜——素描算法(一)
  8. 原神3.2剧情服搭建教程
  9. excel 表格怎么让内容回车换行?
  10. RenderScript 让你的Android计算速度快的飞上天!