问题描述:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

package com.armon.test.exam;

/**

科学家发现病毒感染细胞和染色体密切相关,用字符串表示染色体,我们可以提取出这些染色体的最大相似之处(从头开始)。

输入一些染色体的名称,给出最大相似处,如果没有则返回空字符串。

1. 举例

输入:"sun", "sunflower", "subject"

输出:"su"

2. 举例

输入: "abc", "bcd", "e"

输出: ""

public String getCommon(String[] chromosomes) {

}

*/

public class Wuhan_chromosome {

public static void main(String[] args) {

String[] chromosomes = {"sun", "sunflower", "subject"};

System.out.println(getCommon(chromosomes));

}

public static String getCommon(String[] chromosomes) {

return null;

}

}

上代码,拿去就可以运行:

package com.onlyqi.upup01.six;import java.util.*;public class Test {public static void main(String[] args) {String[] chromosomes = {"sun", "sunflower", "subject"};System.out.println(getCommon(chromosomes));}public static List<String> getCommon(String[] chromosomes) {/**********1.求最短长度的字符串List---主要是缩小范围**************/List<String> minString = minString(chromosomes);/**********2.把最短长度的字符串切碎**************/Set<String> stringSet = breakUp(minString);/**********3.求所有相似的**************/List<String>target=new ArrayList<>();List<String>chromosomeList=Arrays.asList(chromosomes);for (String s : stringSet) {if(chromosomeList.stream().allMatch(a->a.contains(s))){target.add(s);};}//返回相似的一个或是多个return   maxString(target);}public static List<String> minString(String[] chromosomes) {List<String> stringList = Arrays.asList(chromosomes);Map<String, Integer> map = new HashMap<>();stringList.stream().forEach(s -> map.put(s, s.length()));Integer minSize = Collections.min(map.values());List<String> list = new ArrayList<>();map.keySet().forEach(s -> {if (s.length() == minSize) {list.add(s);}});return list;}public static Set<String> breakUp(List<String> list) {Set<String> stringSet = new HashSet<>();list.stream().forEach(s -> {stringSet.addAll(breakUpStr(s));});return stringSet;}/**************把字符串切割*************/public static List<String> breakUpStr(String str) {List<String> stringList = new ArrayList<>();for (int i = 0; i <= str.length(); i++) {String b = str.substring(i, str.length());for (int j = 2; j <= b.length(); j++) {stringList.add(b.substring(0, j));}}return stringList;}public static List<String> maxString(List<String> stringList) {Map<String, Integer> map = new HashMap<>();stringList.stream().forEach(s -> map.put(s, s.length()));Integer maxSize = Collections.max(map.values());List<String> list = new ArrayList<>();map.keySet().forEach(s -> {if (s.length() == maxSize) {list.add(s);}});return list;}
}

运行结果:

科学家发现病毒感染细胞和染色体密切相关,提取出这些染色体的最大相似之处相关推荐

  1. 秃头有救了,科学家发现神奇分子SCUBE3

    来自美国加州大学欧文分校的研究人员发现了一种被称为SCUBE3的信号分子,它有可能对治疗雄性激素性脱发症有效. 科学家也对此表示:若未来研发出相关药品,这将是理想的下一代脱发候选药物.此消息一出,立即 ...

  2. 金星可能存在生命?科学家发现大气中有磷化氢,剧毒气体或是生物代谢产物...

    点击上方"AI遇见机器学习",选择"星标"公众号重磅干货,第一时间送达 晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 最新消息,英国皇家天文学会 ...

  3. 美国科学家发现:AI跟人类一样,都是需要“睡觉”的

    虽然计算机.机器可以不眠不休的工作,但近期科学家发现,有些AI跟人类一样,也是需要"睡觉"的! 模拟生物的AI,需要通过类似睡眠的方式恢复稳定性 洛斯阿拉莫斯国家实验室(Los A ...

  4. 你不会编程,不是你不行,很有可能是老师教的方法不好。科学家发现:对大脑而言,代码编程与语言学习不同...

    点击上面"脑机接口社区"关注我们 更多技术干货第一时间送达 神经科学家发现解释计算机代码可以激活通用的大脑网络,但不能激活语言处理中心. 在某些方面,学习计算机编程语言与学习一门新 ...

  5. 基于100,000篇演讲的分析数据科学家发现了最佳演讲者的特征——及时解释听众不懂的词语,必要时提高10%的音调,正确和恰当的手势,氛围的营造...

    [TD精选] 基于100,000篇演讲的分析数据科学家发现了最佳演讲者的特征 相信大部分人一定试图寻找过使得自己的演讲变得更加吸引人,更加有气势的方法.现如今,在大数据工具和机器学习技术的辅助下,找到 ...

  6. 超级计算机开采金矿,科学家发现地球内部有超60万亿吨金矿,为什么没人敢开采?...

    原标题:科学家发现地球内部有超60万亿吨金矿,为什么没人敢开采? 黄金是人类世界中的硬通货,自古就有盛世古董乱世黄金之说.然而,在19世纪之前,人类总共开采的黄金量不到1万吨,这主要是因为过去科技水平 ...

  7. 拓扑量子计算机 超导 光,科学家发现新型拓扑超导材料 有望推动实现拓扑量子计算...

    科学家发现新型拓扑超导材料! 据媒体报道,中日两国科学家组成的团队最新报告说,一种结构简单.制备容易的新型拓扑超导体材料有望推动实现拓扑量子计算,解决量子计算机面临的主要挑战--"退相干&q ...

  8. 天源财富:突破“极限”!我科学家发现迄今最高能量光子

    从中国科学院高能物理研究所新闻发布会获悉,国家重大科技基础设施高海拔宇宙线观测站"拉索"(LHAASO)在银河系内发现2个能量超过1拍电子伏特(PeV,1000万亿电子伏特)的光子 ...

  9. 【每日新闻】Gartner:2017年CRM跃升为规模最大、增速最快的软件市场 | 中国科学家发现神奇半导体材料...

    每一个企业级的人  都置顶了 中国软件网 中国软件网  为你带来最新鲜的行业干货 小编点评 我们希望邀请更多的生态伙伴 共同探讨 共同行动 2018年4月25日 北京站,不见不散! 趋势洞察 生态视角 ...

最新文章

  1. as用百度地图不联网就gg
  2. 回文java_回文 Java
  3. mysql从库追主库日志_Mysql主库跑太快,从库追不上怎么做?
  4. mysql集群数据引擎_MySQL数据引擎
  5. 《***测试实践指南》D03
  6. 自定义dialog弹窗html,自定义H5页面dialog弹窗
  7. Schrödinger's Knapsack ZOJ - 4019 线性DP
  8. 【7集iCore3基础视频】7-2 iCore3原理图介绍
  9. Java设计模式透析之 —— 组合(Composite)
  10. JavaJDBC异常记录:关于sql上能够正常执行的sql语句,在java中执行了但是返回结果不一致问题
  11. pc 页面在移动端怎么获取放大倍数、_逆冬:移动端排名应该怎么做?两种匹配移动端实战排名干货分享!...
  12. Jenkins驱动SeleniumGrid测试
  13. 【树莓派】设置树莓派开机自动运行python脚本
  14. 人工智能的数学基础------- 矩阵迹与相似矩阵的本质
  15. tushare获取上证50成分股与权重写入mysql
  16. c语言atan,C语言atan()函数:求正切值为 x 的弧度数
  17. 【惑星记】python学习002----------------pyqt5安装
  18. 华尔街见闻-2016年2月
  19. lat_mem_rd 内存延迟测试工具原理,lmbench编译时llseek链接不到问题解决
  20. 【机器人】工业机器人如何赋能3C制造升级?工业机器人的16项重要应用;工业机器人的11个知识问答,“业内人”必看!

热门文章

  1. Mac没有winnt格式_在Mac上轻松将MOV转换为MP4的四大免费方法
  2. MPB:微生物所蔡磊组-​​基于二代测序的真菌基因组组装和注释
  3. iterm2连接Mac中文显示乱码
  4. 研发效能怎么分析?方法论、模型、误区都在这里了
  5. 迅雷网心云赚钱宝3代【Pro】8核性能神器,真实收益有多高?
  6. 是免疫学家也是新晋妈妈,奥康纳在新冠疫苗研制团队中的一天
  7. java环境安装(java环境安装教程)
  8. fatal error caffe/proto/caffe pb h No such file or directo
  9. linux下区分各种SCSI磁盘类型
  10. CnPeng杂说:油条的来历