美文网首页
查找一个数组中出现频次最多的相同元素

查找一个数组中出现频次最多的相同元素

作者: 羊驼626 | 来源:发表于2022-07-06 17:29 被阅读0次

给出一个数组['heloo', 'helo', 'lofthe'],期望得到每个数组元素中出现频次最多且长度最长的字符串,如['lo', 'he'],大家有没有更便捷的解法

function test() {
  // 我的思路是:从originList中找到最短的str,将当前的字符串都排列组合一下,生成一个排列组合列表,遍历这个排列组合列表,去整个originList中匹配,如果当前的排列组合项在originList的每一项都能找到,就先将当前的排列组合项放进结果列表中,直到整个排列组合遍历完,读取结果列表中字符串长度最长的项
  const originList = ["heloo", "helo", "lofthe"];
  // 按字符串长度从小到大排序
  const newList = originList.sort((a, b) => a.length - b.length);
  console.log(newList);
  // 取得长度最小的字符串
  const str = newList[0];
  // 将当前字符串分割
  const list = str.split("");
  const arr = [];
  // 遍历分割的字符串,进行排列组合,得到所有会出现的字符串组合
  for (let index = 0; index < list.length; index++) {
    let i = index;
    let s = "";
    while (i < list.length) {
      s = `${s}${list[i]}`;
      arr.push(s);
      i++;
    }
  }
  console.log(arr);
  // 过滤出除了用于排列组合字符串之外的其它字符串集合
  const otherList = newList.filter((item) => item !== str);
  // 筛选出在所有字符串中均出现的排列组合
  const result = [];
  arr.forEach((item) => {
    if (otherList.every((str) => str.indexOf(item) !== -1)) {
      result.push(item);
    }
  });
  const newResult = result.sort((a, b) => b.length - a.length);
  // 避免出现长度一样的排列组合,所以使用数组
  const res = newResult.filter(
    (item) => item.length === newResult[0].length
  );
  console.log(newResult, res);
};
test();

相关文章

  • 查找一个数组中出现频次最多的相同元素

    给出一个数组['heloo', 'helo', 'lofthe'],期望得到每个数组元素中出现频次最多且长度最长的...

  • javascript中的数组操作

    如何判断一个对象是不是数组? 数组去重 找出数组中出现最多的元素,以及出现的次数 该方法同样可以用于字符串的查找 ...

  • 2018-01-18

    数组中每个元素出现的次数 返回的obj中的属性名是数组中的每个元素值,属性值是数组中相同的元素的个数。

  • TypeScript数组操作

    声明 查找数组中某个元素 查找满足条件的所有元素(过滤) 删除某个元素 把多个数组拼接成一个新数组

  • 算法——目录

    数组与字符串 查找两个元素和 荷兰旗帜问题 删除ArrayList中的元素 删除数组中的重复元素 找出数组中出现次...

  • 数据结构和算法面试题整理

    #数组 - [查找数组中第二小的元素] - [查找第一个没有重复的数组元素] - [合并 2 个排序好的数组] -...

  • js数组题目

    1、寻找两个数组中相同的元素中最小的元素 2、判断一个字符串中出现次数最多的字符,统计这个次数var str=’a...

  • 数组查找操作

    数组常见的查找操作如下: 需求:给一个数组,查找某个元素在数组中的位置,如果该元素不存在,则返回-1。//正常查找...

  • 2017-08-28 数组的处理(查找)

    特殊数组中的查找 题目要求: 一个整数数组中有一个元素出现了一次,其他元素都出现了两次,使用最小的时间复杂度找出...

  • Swift 数组

    数组的简单介绍 数组是一串有序的由相同类型元素构成的集合 数组中的元素是有序的,可以重复出现 在Swift中数组(...

网友评论

      本文标题:查找一个数组中出现频次最多的相同元素

      本文链接:https://www.haomeiwen.com/subject/aopybrtx.html