【正则表达式的妙用】

题目:

给定一个字符串,折叠操作的定义为:

1、对其中连续的字符可以进行删除字符操作,但要保证至少保留其中1个字符;

2、一次可以对多个不同的连续字符进行删除字符操作

如给定字符串 “abbbcccbbbeeef”, 通过折叠操作可以得到“abcccbbbeeef”, “abcccbeeef”, “abcbef”等,但是不能得到 “acccbbbeeef”, “abbeeef”

给定一个字符串和一个子序列数组,返回子序列数组中符合条件的子序列个数

思路:

为字符串构建正则表达式,比如 “abbbcccbbbeeef” => “ab{1,3}c{1,3}b{1,3}e{1,3}f”

//根据字符串构造正则 
const getCount = (str, arr) => {
   
  // 获得正则模板
  str += "$"; // 哨兵位,这样不用为最后一个元素做特殊处理
  let count = 0;
  let reg = "";
  for (let i = 1; i < str.length; i++) {
   
    if (str[i] === str[i - 1]) {
   
      count++;
    } else {
   
      if (count === 0) {
   
        reg += str[i - 1];
        continue;
      }
      reg += str[i - 1] + `{1,${
     count + 1}}`;
      count = 0;
    }
  }
  return arr.filter((item) => new RegExp(reg).test(item)).length;
};

console.log(
  getCount("abbbcccbbbeeeff", [
    "abcccbbbeeef",
    "abcccbeeef",
    "abcbef",
    "acccbbbeeef",
    "abbeeef",
  ])
);

console.log(getCount("bbbeeef", ["bf", "bef", "ef", "beeeef"]));

相关推荐

  1. 表达

    2024-02-09 06:12:01       33 阅读
  2. 表达一些高级

    2024-02-09 06:12:01       31 阅读
  3. Qt中表达

    2024-02-09 06:12:01       11 阅读
  4. 表达规则

    2024-02-09 06:12:01       43 阅读
  5. 02_表达应用

    2024-02-09 06:12:01       34 阅读
  6. 表达应用

    2024-02-09 06:12:01       24 阅读
  7. Harmony 表达写法

    2024-02-09 06:12:01       14 阅读
  8. 表达常见语法

    2024-02-09 06:12:01       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-09 06:12:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-09 06:12:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-09 06:12:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-09 06:12:01       18 阅读

热门阅读

  1. Nginx+React在Docker中实现项目部署

    2024-02-09 06:12:01       36 阅读
  2. 常用的文件系统、存储类型小整理

    2024-02-09 06:12:01       31 阅读
  3. C#面:什么是Code-Behind技术

    2024-02-09 06:12:01       28 阅读
  4. PostgreSQL 与 MySQL 相比,优势何在?

    2024-02-09 06:12:01       36 阅读
  5. ASP.NET Core 7 MVC 使用 Ajax 和控制器通信

    2024-02-09 06:12:01       33 阅读
  6. C语言如何控制输出⻓度?

    2024-02-09 06:12:01       33 阅读
  7. 【flink状态管理(四)】MemoryStateBackend的实现

    2024-02-09 06:12:01       27 阅读