本文主要记录一下leetcode之字符串压缩

题目

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

示例1:

输入:"aabcccccaaa"

输出:"a2b1c5a3"

示例2:

输入:"abbccd"

输出:"abbccd"

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

提示:

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

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/compress-string-lcci

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解

class Solution {

public String compressString(String S) {

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

return S;

}

char pre = S.charAt(0);

int count = 1;

StringBuilder result = new StringBuilder();

for (int i=1; i< S.length(); i++) {

char cur = S.charAt(i);

if (cur == pre) {

count++;

} else {

result.append(pre)

.append(count);

pre = cur;

count = 1;

}

}

result.append(pre)

.append(count);

if (result.length() >= S.length()) {

return S;

}

return result.toString();

}

}

小结

这里维护前一个字符及其count的字段,之后从第二个字符开始遍历,判断与前一个字符是否相等,相等则累加,不相等则将该字符的压缩添加到结果中,最后再将最后一个字符的压缩添加到结果中。

doc

leetcode 解压缩_leetcode之字符串压缩相关推荐

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

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

  2. Java中关于超长字符串压缩,解压缩问题

    问题:数据库中varchar类型的长度设置为5000,通过一个富文本编辑器编辑了通知内容,接收到了内容字段长度为8000多,unruly数据库时候,数据库报错(字段太长,显示下标越界异常) 解决办法: ...

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

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

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

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

  5. python 解压缩字符串_B1078字符串压缩和解压缩(Python),与,python

    1078 字符串压缩与解压 (20分) 文本压缩有很多种方法,这里我们只考虑最简单的一种:把由相同字符组成的一个连续的片段用这个字符和片段中含有这个字符的个数来表示.例如 ccccc 就用 5c 来表 ...

  6. redis源码之字符串压缩

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

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

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

  8. 【华为机试真题 C++】一种字符串压缩表示的解压-100

    [编程题目 |100分]一种字符串压缩表示的解压[2021 H2, 2022 Q1考试题] 时间限制:C/C++ 1秒,其他语言 2秒 空间限制:C/C++262144K,其他语言524288K 64 ...

  9. Java代码实现字符串压缩和解压缩

    在 IO流中我们一般操作文件的输出和输入,但是很少看见字符串压缩和解压缩的操作,本文中将带你了解不一般的IO流操作 目录 一.使用`gzip`进行压缩 二.使用`gzip`进行解压缩 三.使用`zip ...

最新文章

  1. weblogic项目java.sql.SQLException: ORA-01861: 文字与格式字符串不匹配 at oracle.jdbc.....错误解决
  2. 阿里资深技术工程师: 程序员怎样快速成长?
  3. Last non-zero Digit in N! HDU - 1066
  4. php api 实例maccms,苹果cmsV10API接口说明
  5. [Mac] php安装protobuf扩展
  6. dataframe 排序_疯狂Spark之DataFrame创建方式详解一(九)
  7. python2 安装 pip
  8. 抑郁症是不可告人的病吗?
  9. ubuntu 开发环境的配置 (转)
  10. 使用yolo v3训练自己的模型
  11. 省市区mysql一张表下载_2016全国省市区数据库
  12. 线上服务应急攻关方法论
  13. 【Python训练营】Python每日一练----第28天:鲁卡斯队列(round函数用法)
  14. 零信任网络ZTNA及SDP概念理解
  15. 华为matepad和华为matepadpro区别
  16. foxmail邮箱怎么导入邮件_Foxmail怎样导入和导出邮箱账户和邮件
  17. 2013年全国各大著名的IT公司薪资待遇大揭密
  18. 并发线程和线程间通信(event、mailbox和semaphore)-systemVerilog
  19. 《机器学习实战》个人学习记录笔记(二)———k-近邻算法实战之约会网站配对效果判定
  20. SpringCloud-Gateway之RoutePredicateFactory

热门文章

  1. Java学习小代码(1)编写三个数的排序程序
  2. d3.js选择、插入、删除元素
  3. 使用localStorage写一个简单的备忘录
  4. 开关稳压电源过热(高温)保护功能作用--来自中港扬盛分享干货
  5. 在制造业中推进机器人技术的五种方法
  6. nginx虚拟目录实现两个后台使用
  7. 思科发布全新Catalyst 2960-L系列交换机
  8. Exchange 2013 OWA重定向
  9. Linux---cacti安装后不出图
  10. 学习SQLSERVER2005高可用性数据库镜像的一些心得