javascript实现:在N个字符串中找出最长的公子串
2024-08-23 21:44:40
'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)
}
之前我给出的程序代码是错误的,没想到居然还被一些博客转载了。。
最新文章
- Java中使用Jedis操作Redis(转载)
- Scala HandBook
- ZOJ 1442 Dinner Is Ready 容斥原理 + java大数
- usefull-url
- Nokia 的 Scrum标准
- python流程控制语句 for循环 - 1
- eclipse:java.lang.OutOfMemoryError: PermGen space 最简单的解决方式
- iOS 实现脉冲雷达以及动态增减元素 By Swift-感谢分享
- 【HDOJ】1561 The more, The Better
- C++11下的线程池以及灵活的functional + bind + lamda
- Hibernate学习之缓存简析
- 控制结构(1) 分枝/叶子(branch/leaf)
- IdentityServer4 禁用 Consent screen page(权限确认页面)
- Java异常处理认识
- Unity下载
- MySQL运行内存不足时应采取的措施?
- Java 获取表格中某一个单元格的值
- linux 使用ifstat查看网络使用情况
- error C2065: &#39;IDD_DIALOG1&#39; : undeclared identifier
- python(36):python日志打印,保存,logging模块学习
热门文章
- HDU 4363
- clear out all variables without closing terminal
- CSS3选择器(全)
- NDK编译库执行时报dlopen failed: cannot locate symbol &;quot;__exidx_end&;quot; 解决的方法
- 怎样动态设置GridView的宽和高(Android)
- C/C++中输入多组数据方法
- Hive搭建与简单使用
- iOS 点击事件传递及响应
- Asp.net三种事务处理
- bitmap实现背景透明