因为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-压缩字符串(双索引)相关推荐

  1. python中字符串索引_Python字符串的索引与访问字符串中的字符

    字符串是Python中一种非常重要的数据类型.Python字符串是字符的集合,是由单引号.双引号或三引号包裹起来的若干字符的序列.Python字符串中的每个字符使用ASCII或Unicode字符编码, ...

  2. mysql索引 钱缀_mysql字符串前缀索引

    比如,这两个在 email 字段上创建索引的语句: mysql> alter table SUser add index index1(email); 或 mysql> alter tab ...

  3. 数据类型字符串得索引及切片

    一:数据类型 1):int     1,2,3用于计算 2):bool    ture  false  用于判断,也可做为if的条件 3):str     用引号引起来的都是str 存储少量数据,进行 ...

  4. mysql 批量加索引_mysql优化:按期删数据 + 批量insert + 字符串加索引为何很傻

    嗯,犯了一个很低级的错误,最近暴露出来了.html 背景:mysql 1. 内部平台,接口间断性无返回,查询日志注意到失败时,接口耗时达到4000+(正常状态:100+ms)git 2. 增长日志打点 ...

  5. 《MySQL——给长字符串加索引》

    对于长字符串,可用如下方式建立索引: (1)前缀索引 (2)字符串倒叙+前缀索引 (3)添加hash字段+并在hash字段上加索引 (4)字段拆分(一个字段可拆分为两个以上) 假设现在表User 中存 ...

  6. 443. 压缩字符串

    443. 压缩字符串 给你一个字符数组 chars ,请使用下述算法压缩: 从一个空字符串 s 开始.对于 chars 中的每组 连续重复字符 : 如果这一组长度为 1 ,则将字符追加到 s 中. 否 ...

  7. LeetCode 604. 迭代压缩字符串

    文章目录 1. 题目 2. 解题 1. 题目 对于一个压缩字符串,设计一个数据结构,它支持如下两种操作: next 和 hasNext. 给定的压缩字符串格式为:每个字母后面紧跟一个正整数,这个整数表 ...

  8. mysql 索引 insert_mysql优化:定期删数据 + 批量insert + 字符串加索引为什么很傻

    嗯,犯了一个很低级的错误,最近暴露出来了. 背景: 1. 内部平台,接口间断性无返回,查询日志注意到失败时,接口耗时达到4000+(正常状态:100+ms) 2. 增加日志打点,在关键步骤插入时间戳, ...

  9. 11 怎么给字符串加索引

    11 怎么给字符串加索引 现在,几乎所有的系统都支持邮箱登录,如何在邮箱这样的字段上建立合理的索引? 用户表定义 mysql> create table SUser( ID bigint uns ...

最新文章

  1. TestSuite测试报告生成
  2. Linux系统结构学习
  3. 计算机语言E9,九种编程语言大对比
  4. ⑨④-如果不发展就可能面临生存窘境
  5. java泛型程序设计——泛型类的静态上下文中类型变量无效+不能抛出或捕获泛型类的实例
  6. Anti-Forgery Request Recipes For ASP.NET MVC And AJAX 防伪验证,防伪请求
  7. Python笔记 【无序】 【五】
  8. 谷歌浏览器怎么重发请求_Googel 浏览器 模拟发送请求工具--Advanced REST Client
  9. java_数组插入001
  10. keil git 编译文件_交叉编译链下的Makefile(STM32F4xx)
  11. c语言数据页,c语言基础--数据类型(51页)-原创力文档
  12. 【配置git和github】github鉴权失败 git配置github 免密登录
  13. “华为杯”研究生数学建模竞赛2005年-【华为杯】D题:仓库容量有限条件下的随机存贮管理问题(附获奖论文和matlab代码)
  14. mysql语句大小写要求_mysql踩坑(一)-大小写规则
  15. 3D模型:免费3D模型下载网站推荐
  16. 【SemiDrive源码分析】【Yocto源码分析】02 - yocto/meta-openembedded目录源码分析
  17. mysql的循环语句(循环插入数据)
  18. p 车票提前下车客户端linux,火车能中途下车么?看完你就知道了
  19. WebCollector初学教程
  20. 网优谷的Linux真的不一样

热门文章

  1. virtualenv之python虚拟环境
  2. 提高你css技能的css开发技巧
  3. 外键列到底要建在哪里?
  4. vs2010 C#链接 ACCESS数据库
  5. 用 GDI 操作 EMF 文件(转)
  6. 我眼中的性能测试工程师
  7. makefile工作笔记0003---Makefile的ifeq逻辑或,逻辑与的变通实现
  8. 搜索引擎学习笔记001---lucene简明介绍
  9. java零碎要点---用java实现生成二维码,与解析代码实现
  10. Java的接口及实例(转)