字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。

示例1:

输入:"aabcccccaaa"
 输出:"a2b1c5a3"
示例2:

输入:"abbccd"
 输出:"abbccd"
 解释:"abbccd"压缩后为"a1b2c2d1",比原字符串长度更长。

思路:

有一个小坑,数量超过10的x与S比较的位置可能得多移动几位
提示:

字符串长度在[0, 50000]范围内。

代码:

class Solution {

public String compressString(String S) {

if(S.length()==0){

return S;

}

StringBuilder x = new StringBuilder();

x.append(S.charAt(0));

int i=1,j=0,count=1;

while(i<S.length())

{

if(x.charAt(j)!=S.charAt(i)){

x.append(count);

while(count!=0)//需要注意,不是每次添加数字都是j++,有的数量超过10,j就不止移动一位,可能好几位

{

count/=10;

j++;

}

count=1;

x.append(S.charAt(i));

j++;

}else{

count++;

}

i++;

}

x.append(count);

if(x.length()>=S.length())

{

return S;

}

return x.toString();

}

}

Leetcode--字符串压缩相关推荐

  1. leetcode 解压缩_leetcode之字符串压缩

    序 本文主要记录一下leetcode之字符串压缩 题目 字符串压缩.利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能.比如,字符串aabcccccaaa会变为a2b1c5a3.若&quo ...

  2. Leetcode 面试题 01.06.字符串压缩(Compress String LCCI)

    Leetcode 面试题 01.06.字符串压缩 1 题目描述(Leetcode题目链接)   字符串压缩.利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能.比如,字符串aabccccc ...

  3. LeetCode 面试题 01.06. 字符串压缩 (双指针)

    面试题 01.06. 字符串压缩 题意: 压缩字符串,如:"aabbccc"压缩为"a2b2c3",如果压缩后的字符串长度大于等于原字符串,则返回原来的字符串. ...

  4. Leetcode:面试题 01.06. 字符串压缩

    题目: 字符串压缩.利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能.比如,字符串aabcccccaaa会变为a2b1c5a3.若"压缩"后的字符串没有变短,则返回原 ...

  5. 程序员面试金典 - 面试题 01.06. 字符串压缩(字符串)

    1. 题目 字符串压缩.利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能.比如,字符串aabcccccaaa会变为a2b1c5a3.若"压缩"后的字符串没有变短,则返 ...

  6. javaScript 字符串压缩

    字符串压缩.利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能.比如,字符串aabcccccaaa会变为a2b1c5a3.若"压缩"后的字符串没有变短,则返回原先的字符 ...

  7. python【蓝桥杯vip练习题库】ADV-301 字符串压缩

    试题 算法提高 字符串压缩 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 编写一个程序,输入一个字符串,然后采用如下的规则对该字符串当中的每一个字符进行压缩: (1) 如果该字符是 ...

  8. redis源码之字符串压缩

    redis关于字符串压缩的几个文件分别是:lzf.h,lzfP.h,lzf_c.c,lzf_d.c,下面看一个测试用例. #include <iostream> #include < ...

  9. 七十二、Python | Leetcode字符串系列(下篇)

    @Author:Runsen @Date:2020/7/3 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...

  10. 七十一、Python | Leetcode字符串系列(上篇)

    @Author:Runsen @Date:2020/7/3 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...

最新文章

  1. mysql按逗号拼接起来_MySQL ----- 计算字段(Trim,Concat,as)(九)
  2. 最长递增子序列 最长连续递增序列
  3. 人工智能等新技术将加速物联网的普及
  4. hql懒加载后判断对象是否存在_hibernate延迟加载(懒加载)详解
  5. java中什么表示打印_在java中打印对象时会发生什么
  6. 【软件开发底层知识修炼】二十五 ABI之函数调用约定二之函数返回值为结构体时的约定
  7. oracle move 换用户,Oracle move方法释放delete后的表空间
  8. php 并发 100 压测,简单PHP把握站点并发数
  9. Django使用mysql连接池_Django db使用MySQL连接池
  10. ES6学习笔记(三):教你用js面向对象思维来实现 tab栏增删改查功能
  11. c++ string分割字符串split_Java字符串到数组的转换最后放大招
  12. 第七章 课后习题P206
  13. 在C#中IEnumerable与IEnumerator
  14. Git之路——配置SSH免密码登录
  15. Atitit v2 ajax 最佳实践规范 标准化流程attilax总结 r34
  16. 罗马盘,大力盘,大圣盘等网盘资源搜索免费下载资源教程
  17. 163邮箱注册申请入口,申请163的邮箱账号
  18. 服务器系统需要装显卡驱动吗,显卡驱动需要更新吗,详细教您显卡驱动需要更新吗...
  19. (Java实现) 美元汇率
  20. 渗透测试培训--(小迪篇)

热门文章

  1. LintCode 183. 木材加工(二分查找)
  2. LeetCode 629. K个逆序对数组(DP)
  3. python天气预报官网_python 实现对天气预报官网未来一周七天的天气情况抓取
  4. 开直播辣!生成对抗网络全脉络梳理!
  5. 论文小综 | Attention in Graph Neural Networks
  6. 论文浅尝 | 区分概念和实例的知识图谱嵌入方法
  7. freewheel现场宣讲笔试回忆篇
  8. tensorflow--embedding_lookup 和 embedding_lookup_sparse
  9. 人工智能技术在智能制造中的典型应用场景与标准体系研究
  10. Lintcode415-Valid Palindrome-Medium