【算法题】一种字符串压缩表示的解压(js)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输入:2dff
输出 !error
两个d不需要压缩,故输入不合法

输入:4e@A
输出:!error
全部由小写英文字母组成,压缩后不会出现@,故输出不合法

    function solution(str) {
      const error = "!error";
      // 只能包含小写字母和数字 [^a-z0-9]表示取反匹配,不是小写字母或者0-9数字的
      const reg1 = /[^a-z0-9]/g;
      if (reg1.test(str)) {
        return error;
      }
      const reg2 = /(\d+)([a-z])+/g;
      while (true) {
        const matchStr = reg2.exec(str);
        // 没有匹配到例如这11a这种的值
        if (!matchStr) break;
        const str1 = matchStr[0];
        const numStr = matchStr[1];
        const len = numStr.length;
        const char = str1.substr(len, 1);
        const nextChar = str1.substr(len + 1, 1);
        // 排除 8aab这种
        if (char === nextChar) return error;
        // 排除 2a这种
        if (numStr - 0 < 3) return error;
        const newStr = char.repeat(numStr - 0);
        str = str.replace(numStr + char, newStr);
      }
      return str;
    }
    console.log(solution("4aa"));
    //4dff ddddff
    //2dff !error
    //4e@A !error
    //4aa  !error

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/222478.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

无需公网IP实现公网远程访问本地WebDAV服务

windows搭建WebDAV服务&#xff0c;并内网穿透公网访问【无公网IP】 文章目录 windows搭建WebDAV服务&#xff0c;并内网穿透公网访问【无公网IP】1. 安装IIS必要WebDav组件2. 客户端测试3. cpolar内网穿透3.1 打开Web-UI管理界面3.2 创建隧道3.3 查看在线隧道列表3.4 浏览器访…

踩坑记录:SpringBoot集成Dubbo和Nacos版本问题

一、概述 最近在整理依赖&#xff0c;原本用的springcloud提供的nacos&#xff0c;看到老早都不更新了&#xff0c;而且有些包冲突&#xff0c;就换了ali的&#xff0c;用的spring-boot版本是2.3.9.RELEASE&#xff0c;对应spring-cloud版本是Hoxton.SR12&#xff0c;dubbo用的…

[足式机器人]Part2 Dr. CAN学习笔记-数学基础Ch0-5Laplace Transform of Convolution卷积的拉普拉斯变换

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-数学基础Ch0-5Laplace Transform of Convolution卷积的拉普拉斯变换 Laplace Transform : X ( s ) L [ x ( t ) ] ∫ 0 ∞ x ( t ) e − s t d t X\left( s \right) \mathcal{L} \left[ x\lef…

现货黄金会面临哪些风险?

进行现货黄金投资&#xff0c;我们除了要了解怎么找到交易机会以外&#xff0c;也要知道我们交易会面临哪些风险&#xff0c;了解风险就是做到知己知彼&#xff0c;了解风险才能控制风险。控制住风险&#xff0c;才能为我们稳定盈利打好基础&#xff0c;那么下面我们就来看看在…

Linux入门笔记

1 Linux概述 Linux 是一套免费使用和自由传播的类 Unix 操作系统&#xff0c;是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心…

5.数据通信模型

主要内容 1.数据通信模型 2.C/S模型 3.B/S模型 4.P2P模型 数据通信模型 概念&#xff1a; 在早期的计算机网络中&#xff0c;为了有效的利用计算机&#xff0c;一般将数据通信模型分为 分散式&#xff08;Decentralized&#xff09; 集中式&#xff08;Centralized&am…

8个Python高效数据分析的技巧!

一行代码定义List 定义某种列表时&#xff0c;写For 循环过于麻烦&#xff0c;幸运的是&#xff0c;Python有一种内置的方法可以在一行代码中解决这个问题。下面是使用For循环创建列表和用一行代码创建列表的对比。 x [1,2,3,4] out [] for item in x:out.append(item**2) …

好用的音乐制作工具 Studio One 6中文 for mac

Studio One 6是一款专业的音乐制作软件&#xff0c;提供了全面而强大的功能&#xff0c;帮助音乐制作人、录音工程师和创作者实现他们的创意。 它的主要特点包括&#xff1a;直观的用户界面&#xff0c;使得操作变得简单易懂&#xff1b;支持多轨录音&#xff0c;允许用户进行…

PieCloudDB Database 自研全新向量化执行器,带来性能的数量级提升

数据分析和应用的重要性日益增长&#xff0c;对于数据平台和数据计算系统来说&#xff0c;极致的性能是关键需求之一。为实现更高效的数据并行计算&#xff0c;一款优秀的执行器需要能够充分利用硬件资源&#xff0c;如 CPU 的并行计算能力和 SIMD 指令集。此外&#xff0c;优化…

【电商API接口接入】国内最受欢迎的7大API供应平台对比和介绍

免费实用的API接口 第一部分 1、电商数据API接口&#xff08;国内外电商API接口接入&#xff09; 2、百度API Store(API集市_APIStore) 3、webxml&#xff08;确实不错&#xff09;WebXml | WEB服务 第二部分 1、地图接口 阿里云根据经纬度获取地区名接口&#xff1a; http://g…

将文件夹中所有文件名取出

dir C:\Users\是啊\Desktop\实验五/b>C:\Users\是啊\Desktop\1111.xls C:\Users\是啊\Desktop\实验五&#xff08;这个是文件夹路径&#xff09; /b &#xff08;参数&#xff09; C:\Users\是啊\Desktop\1111.xls&#xff08;文件名输出的文件路径&#xff09;

电脑版便签软件怎么设置在桌面上显示?

对于不少上班族来说&#xff0c;如果想要在使用电脑办公的时候&#xff0c;随手记录一些常用的工作资料、工作注意事项等内容&#xff0c;直接在电脑上使用便签软件记录是比较方便的。电脑桌面便签工具不仅方便我们随时记录各类工作事项&#xff0c;而且支持我们快速便捷使用这…

【动态规划】LeetCode2111:使数组 K 递增的最少操作次数

作者推荐 [二分查找]LeetCode2040:两个有序数组的第 K 小乘积 本文涉及的基础知识点 二分查找算法合集 分组 动态规划 题目 给你一个下标从 0 开始包含 n 个正整数的数组 arr &#xff0c;和一个正整数 k 。 如果对于每个满足 k < i < n-1 的下标 i &#xff0c;都有…

ReactJS和VueJS的简介以及它们之间的区别

本文主要介绍ReactJS和VueJS的简介以及它们之间的区别。 目录 ReactJS简介ReactJS的优缺点ReactJS的应用场景VueJS简介VueJS的优缺点VueJS的应用场景ReactJS和VueJS的区别 ReactJS简介 ReactJS是一个由Facebook开发的基于JavaScript的前端框架。它是一个用于构建用户界面的库&…

windows建立软链 报 无法将“mklink”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

当我执行网上提供的mklink 的时候&#xff0c;出现 mklink : 无法将“mklink”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。怎么回事&#xff0c;原来&#xff0c;要在执行的签名加 cmd /c 当我执行建立软链接时&#xff0c;提示 没有足够的权限&#xff0c;要用管理…

pytest使用allure测试报告

最近通过群友了解到了allure这个报告&#xff0c;开始还不以为然&#xff0c;但还是逃不过真香定律。 经过试用之后&#xff0c;发现这个报告真的很好&#xff0c;很适合自动化测试结果的展示。下面说说我的探索历程吧。 选用的项目为Selenium自动化测试Pytest框架实战&#…

物料做出库的时候提交,提示 【即时成本为0】

【财务会计】——【出库核算】——【材料出库核算】

HarmonyOS学习--TypeScript语言学习(二)

本章目录如下&#xff1a; 一、基础类型 二、运算符 三、变量声明 四、类型断言 五、类型推断 TypeScript支持一些基础的数据类型&#xff0c;如布尔型、数组、字符串等&#xff0c;下文举例几个较为常用的数据类型&#xff0c;我们来了解下他们的基本使用。 关于let 我们…

MYSQL数据库中运行SQL文件报错

报错显示 当使用mysql数据库运行SQL文件报错时 [Err] 1273 - Unknown collation: utf8mb4_0900_ai_ci 报错原因 版本高低问题&#xff0c;一个是5.7版本&#xff0c;一个是8.0版本生成转储文件的数据库版本为8.0,要导入sql文件的数据库版本为5.7,因为是高版本导入到低版本&a…

首次超越1000量子比特大关!量子前哨详解IBM突破性进展

&#xff08;图片来源&#xff1a;网络&#xff09; 本周&#xff0c;IBM在其年度量子峰会上宣布&#xff0c;公司已在量子计算领域取得重要突破。其中包括备受期待的1121量子比特Condor QPU&#xff0c;以及一个较小的133量子比特Heron QPU&#xff0c;这些QPU能够与其他QPU组…