LeetCode443-压缩字符串(双索引)
因为js是不区分整形和double的,所以会有0.2....
Number.isInteger
对1取余
记得就好了,小数对1取余是它自己
但是其实除1也是她自己
因为没法去掉末位,所以和java会有不同的效果,很烦
最后使用向下取整!
如果只需要返回值的话,这样就好了
看错题目了,没想到他还要在原来数组修改的
var compress = function(chars) {if(chars.length<=1)return chars.length;//记录当前字符var current = chars[0];//记录返回长度var result = 0;//记录当前字符的个数var count = 1;for(let i=1,len = chars.length;i<len;i++){let temp = chars[i];//遇到一个和之前不一样的字符了,结束计算if(temp!=current){//这个字符算一个位置result++;//大于1才计算if(count>1){while(count>0){result++;count = Math.floor(count/10); }}//current变成下一个current = temp;count = 1;}else{count++;}}//最后如果全是重复的,直接跳出了,可能没有计算到 result++;//大于1才计算if(count>1){while(count>0){result++;count = Math.floor(count/10); }}return result; };
用一个变量,记录可以插的位置即可。
不可能覆盖的。
因为只会在重复的数字位置进行插入数字。
该遍历的继续遍历
var compress = function(chars) {if(chars.length<=1)return chars.length;//记录当前字符var current = chars[0];//记录能插的地方var index = 0;//记录当前字符的个数var count = 1;// debugger;for(let i=1,len = chars.length;i<len;i++){let temp = chars[i];if(temp!=current){chars[index++] = current;let arr = new Array();if(count>1){while(count>0){arr.push(count%10);count = Math.floor(count/10); }for(let j=arr.length-1;j>=0;j--){chars[index++]=arr[j].toString();}}current = temp;count = 1;}else{count++;}}//最后如果全是重复的,直接跳出了,可能没有计算到chars[index++] = current;let arr = new Array();if(count>1){while(count>0){arr.push(count%10);count = Math.floor(count/10); }for(let j=arr.length-1;j>=0;j--){chars[index++]=arr[j].toString();}}return index; };
转载于:https://www.cnblogs.com/weizhibin1996/p/9769450.html
LeetCode443-压缩字符串(双索引)相关推荐
- python中字符串索引_Python字符串的索引与访问字符串中的字符
字符串是Python中一种非常重要的数据类型.Python字符串是字符的集合,是由单引号.双引号或三引号包裹起来的若干字符的序列.Python字符串中的每个字符使用ASCII或Unicode字符编码, ...
- mysql索引 钱缀_mysql字符串前缀索引
比如,这两个在 email 字段上创建索引的语句: mysql> alter table SUser add index index1(email); 或 mysql> alter tab ...
- 数据类型字符串得索引及切片
一:数据类型 1):int 1,2,3用于计算 2):bool ture false 用于判断,也可做为if的条件 3):str 用引号引起来的都是str 存储少量数据,进行 ...
- mysql 批量加索引_mysql优化:按期删数据 + 批量insert + 字符串加索引为何很傻
嗯,犯了一个很低级的错误,最近暴露出来了.html 背景:mysql 1. 内部平台,接口间断性无返回,查询日志注意到失败时,接口耗时达到4000+(正常状态:100+ms)git 2. 增长日志打点 ...
- 《MySQL——给长字符串加索引》
对于长字符串,可用如下方式建立索引: (1)前缀索引 (2)字符串倒叙+前缀索引 (3)添加hash字段+并在hash字段上加索引 (4)字段拆分(一个字段可拆分为两个以上) 假设现在表User 中存 ...
- 443. 压缩字符串
443. 压缩字符串 给你一个字符数组 chars ,请使用下述算法压缩: 从一个空字符串 s 开始.对于 chars 中的每组 连续重复字符 : 如果这一组长度为 1 ,则将字符追加到 s 中. 否 ...
- LeetCode 604. 迭代压缩字符串
文章目录 1. 题目 2. 解题 1. 题目 对于一个压缩字符串,设计一个数据结构,它支持如下两种操作: next 和 hasNext. 给定的压缩字符串格式为:每个字母后面紧跟一个正整数,这个整数表 ...
- mysql 索引 insert_mysql优化:定期删数据 + 批量insert + 字符串加索引为什么很傻
嗯,犯了一个很低级的错误,最近暴露出来了. 背景: 1. 内部平台,接口间断性无返回,查询日志注意到失败时,接口耗时达到4000+(正常状态:100+ms) 2. 增加日志打点,在关键步骤插入时间戳, ...
- 11 怎么给字符串加索引
11 怎么给字符串加索引 现在,几乎所有的系统都支持邮箱登录,如何在邮箱这样的字段上建立合理的索引? 用户表定义 mysql> create table SUser( ID bigint uns ...
最新文章
- TestSuite测试报告生成
- Linux系统结构学习
- 计算机语言E9,九种编程语言大对比
- ⑨④-如果不发展就可能面临生存窘境
- java泛型程序设计——泛型类的静态上下文中类型变量无效+不能抛出或捕获泛型类的实例
- Anti-Forgery Request Recipes For ASP.NET MVC And AJAX 防伪验证,防伪请求
- Python笔记 【无序】 【五】
- 谷歌浏览器怎么重发请求_Googel 浏览器 模拟发送请求工具--Advanced REST Client
- java_数组插入001
- keil git 编译文件_交叉编译链下的Makefile(STM32F4xx)
- c语言数据页,c语言基础--数据类型(51页)-原创力文档
- 【配置git和github】github鉴权失败 git配置github 免密登录
- “华为杯”研究生数学建模竞赛2005年-【华为杯】D题:仓库容量有限条件下的随机存贮管理问题(附获奖论文和matlab代码)
- mysql语句大小写要求_mysql踩坑(一)-大小写规则
- 3D模型:免费3D模型下载网站推荐
- 【SemiDrive源码分析】【Yocto源码分析】02 - yocto/meta-openembedded目录源码分析
- mysql的循环语句(循环插入数据)
- p 车票提前下车客户端linux,火车能中途下车么?看完你就知道了
- WebCollector初学教程
- 网优谷的Linux真的不一样