搜索

首页  >  问答  >  正文

javascript - codewars的一道题,搞不懂

题目

给定两个字符串数组 a1 和 a2,返回一个按 a1 字符串的字典顺序排序的数组 r,其中 a1 字符串是 a2 字符串的子字符串。

例子

示例 1:
a1 = ["arp", "live", "strong"]
a2 = ["lively", "alive", "harp", "sharp", "armstrong"]
返回 ["arp" 、“活着”、“坚强”]

示例2:
a1 = ["tarp", "mice", "bull"]
a2 = ["lively", "alive", "harp", "sharp", "armstrong"]
返回[]

要求

要求实现 function inArray(array1,array2){}

测试示例:

雷雷
世界只因有你世界只因有你2884 天前980

全部回复(3)我来回复

  • 仅有的幸福

    仅有的幸福2017-05-19 10:33:57

    供参考:

    function inArray(a1, a2){
        return a1.filter(el_a1 => a2.find(el_a2 => el_a2.includes(el_a1))).sort();
    }

    回复
    0
  • 某草草

    某草草2017-05-19 10:33:57

    应该是寻找最大子串问题吧,参考动态规划问题(2)——寻找最长公共子串

    回复
    0
  • PHP中文网

    PHP中文网2017-05-19 10:33:57

    简单来说,返回a2中存在的a1字串,顺序为a1的顺序。

    比如harp和sharp都有字串arp。lively和alive都有字串live,amstrong有字串strong。然后返回的顺序对应a1的顺序,所以返回["arp", "live", "strong"]

    回复
    0
  • 取消回复