当前位置: 首页 > news >正文

【JS】给定一组单词,找出其中的最长单词且该单词有着租单此种其他两个单词组合而成

需求

给定一组单词,编写一个程序,找出其中的最长单词,且该单词由这组单词中的其他两个单词组合而成,这两个单词的组合顺序是索引值小的在左,索引值大的在右。若有多个长度相同的结果,返回其中索引最大的一项,若没有符合要求的单词则返回空字符串。

// 示例1:
// 输入:[“ac”,“ad”,“acad”,“aga”,“agaacad”,“sk”,“skacad”,“hasdjasnskss”]
// 结果:agaacad

// 示例2
// 输入:[“ac”,“ad”,“acad”,“aga”,“agaacad”,“skd”,“skdacad”,“hasdjasnskss”]
// 结果:skdacad

实现

const isCombination = (array, curWord, prevWord, prevIndex) => {let longestWord = prevWordlet index = prevIndexfor (let i = 0; i < array.length; i++) {for (let j = i + 1; j < array.length; j++) {// 如果当前单词长度大于最长单词长度,或者当前单词长度等于最长单词长度但索引更大if (array[i] + array[j] === curWord || array[j] + array[i] === curWord) {if (curWord.length > longestWord.length ||(curWord.length === longestWord.length && j > index)) {longestWord = curWordindex = i}}}}return [longestWord, index]
}const func = (array) => {let resultWord = ""let index = -1// 遍历每个单词,检查是否可以由其他单词组合而成for (let i = 0; i < array.length; i++) {const word = array[i];[resultWord, index] = isCombination(array, word, resultWord, index)}return resultWord
}

http://www.mrgr.cn/news/20722.html

相关文章:

  • 【STM32】GPIO输入实现按键控制LED
  • C++ DLL DEMO
  • Node.js 入门:中间件与安全性深度解析
  • android面试:解释一下 AsyncTask是什么?
  • 【生日视频制作】奔驰大G提车交车仪式感广告展示牌AE模板修改文字软件生成器教程特效素材【AE模板】
  • Linux系统性能调优技巧
  • 瞬时流量过大,如何实现服务熔断、降级和限流
  • docker-network
  • 三大技术都有的零信任厂商,他来打擂了!
  • 练习实践-git工具-id:1-git 工具的基础命令
  • Android中Fragment的高级用法
  • 全国科普日知识竞赛答题
  • 网页开发 HTML
  • 飞速了解Conda的作用和安装使用教程
  • Qt实现几何、颜色、不透明度动画
  • 解决商店汽水兑换问题——利用贪心算法与循环结构
  • 4-2.Android Camera 之预览图像编码模板(SurfaceView)
  • zabbix4.0创建自定义监控项
  • 【Boost】Asio库学习(二)
  • C# 排序算法之快速排序