'use strict'

module.exports = function 找出最长公子串 (...strings) {
let setsOfSubstrings = []
strings.reduce((accumulator, currentValue) => {
setsOfSubstrings.push(findAllSubStringsFromTwoString(accumulator, currentValue))
return accumulator
})
return findTheLongest(findIntersection(...setsOfSubstrings))
} function findIntersection (...sets) {
/**
*
*
* @param {sets} a list of sets
* @returns {array} the elements of the intersection of given sets.
*/
return sets.reduce((accumulator, currentValue) => [...accumulator].filter(value => currentValue.has(value)))
} function findAllSubStringsFromTwoString (string1, string2) {
let allSubstrings = new Set()
for (let index = 0; index < string1.length; index++) {
let length = 1, substring = string1.substr(index, length)
while (string2.indexOf(substring) !== -1 && length <= string1.length) { // 当string2内含有substring时
allSubstrings.add(substring)
substring = string1.substr(index, length++)
}
}
return allSubstrings
} function findTheLongest (strings) {
return strings.reduce((accumulator, currentValue) => findTheLonger(accumulator, currentValue), '')
} function findTheLonger (string1, string2) {
return (string1.length > string2.length) ? (string1) : (string2)
}

之前我给出的程序代码是错误的,没想到居然还被一些博客转载了。。

最新文章

  1. Java中使用Jedis操作Redis(转载)
  2. Scala HandBook
  3. ZOJ 1442 Dinner Is Ready 容斥原理 + java大数
  4. usefull-url
  5. Nokia 的 Scrum标准
  6. python流程控制语句 for循环 - 1
  7. eclipse:java.lang.OutOfMemoryError: PermGen space 最简单的解决方式
  8. iOS 实现脉冲雷达以及动态增减元素 By Swift-感谢分享
  9. 【HDOJ】1561 The more, The Better
  10. C++11下的线程池以及灵活的functional + bind + lamda
  11. Hibernate学习之缓存简析
  12. 控制结构(1) 分枝/叶子(branch/leaf)
  13. IdentityServer4 禁用 Consent screen page(权限确认页面)
  14. Java异常处理认识
  15. Unity下载
  16. MySQL运行内存不足时应采取的措施?
  17. Java 获取表格中某一个单元格的值
  18. linux 使用ifstat查看网络使用情况
  19. error C2065: &#39;IDD_DIALOG1&#39; : undeclared identifier
  20. python(36):python日志打印,保存,logging模块学习

热门文章

  1. HDU 4363
  2. clear out all variables without closing terminal
  3. CSS3选择器(全)
  4. NDK编译库执行时报dlopen failed: cannot locate symbol &amp;quot;__exidx_end&amp;quot; 解决的方法
  5. 怎样动态设置GridView的宽和高(Android)
  6. C/C++中输入多组数据方法
  7. Hive搭建与简单使用
  8. iOS 点击事件传递及响应
  9. Asp.net三种事务处理
  10. bitmap实现背景透明