2020-03-16

1.题目描述

字符串压缩

2.解题思路

用一个字符变量c存放第一个不同的字符,然后遍历其后面的字符,如果相同则cnt加一,否则更新c
以及cnt,注意这里的cnt是可能大于10的。
string添加字符:+=c;
string添加数字:+=to_string(cnt);

3.代码

#include <iostream>
#include <cstring>
using namespace std;class Solution {
public:string compressString(string S) {if (S.length()==0||S.length()==1) return S;string res="";char c=S[0];int l=S.length();int i,cnt=1;for (i=1;i<l;i++){if (S[i]==c){cnt++;}else{res+=c;res+=to_string(cnt);cnt=1;c=S[i];}if (res.length()>l) return S;}res+=c;res+=to_string(cnt);if (res.length()<l)  return res;return S;}
};int main(){Solution s;string tmp;while(cin>>tmp)cout<<s.compressString(tmp)<<endl;return 0;
}

面试题 01.06. 字符串压缩相关推荐

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

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

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

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

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

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

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

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

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

    前言 本系列文章为<程序员面试金典>刷题笔记. 题目位置:字符串压缩 题集:程序员面试金典 题目 字符串压缩.利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能.比如,字符串a ...

  6. 文巾解题 面试题 01.06. 字符串压缩

    1 题目描述 2 解题思路 也很简单,从头到尾遍历一遍即可,先建立一个表示出现次数的字符串tmp,然后返回tmp和S中短的那个 时间复杂度 O(n),空间复杂度O(n) class Solution: ...

  7. 面试题 01.09. 字符串轮转

    面试题 01.09. 字符串轮转 字符串轮转.给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串). 示例1: 输入:s ...

  8. leetcode每日一题--前缀树;前缀哈希;深搜;面试题 08.04. 幂集;648. 单词替换面试题 01.09. 字符串轮转;剑指 Offer II 062. 实现前缀树

    leetcode每日一题 ps:今天的每日一题没意思,简单的模拟,自己换一道 面试题 08.04. 幂集 幂集.编写一种方法,返回某集合的所有子集.集合中不包含重复的元素. 说明:解集不能包含重复的子 ...

  9. 程序员面试金典 - 面试题 01.09. 字符串轮转

    1. 题目 字符串轮转.给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串). 示例1:输入:s1 = "wa ...

最新文章

  1. 零基础学C++进腾讯,这份GitHub热榜的「从入门到高薪」请你收下
  2. linux 下解压缩rar文件
  3. Objective-c(1)
  4. 安装失败java.lang_linux安装jdk出现java/lang/NoClassDefFoundError: java/lang/Object错误的解决方案...
  5. 【解析】UVA-548 Tree
  6. Akka并发编程——第八节:Actor模型(七)
  7. Kali渗透测试——利用metasploit攻击靶机WinXP SP1
  8. 在 IE 中使用 HTML5 元素
  9. php 高效判断是否登录,php 判断用户是否登录
  10. C#读取Win32标准DLL文件中的Bitmap(位图)
  11. ★LeetCode(538)——把二叉搜索树转换为累加树(JavaScript)
  12. networkx怎么显示图_如何将标签添加到networkx图形中的节点?
  13. hdu 5510 Bazinga (尺取法)
  14. Plant Simulation 更改字体样式
  15. 随便聊聊,关于大学,未来的规划
  16. Asynchronous Methods for Deep Reinforcement Learning-笔记
  17. 一文看懂:光学行业 三摄+潜望式+3D
  18. 延时函数delay与sleep有什么区别呢?
  19. 武汉大学计算机学院卓越工程师班,大学里的三大重点班:实验班、基地班、卓越工程师班...
  20. 计算机四级网络工程师题目,计算机四级网络工程师笔试题目

热门文章

  1. Science亮点!ExSeq:完整生物组织的原位空间转录组分析
  2. 中国十大科技进展2项,世界十大科技进展6项生物相关;相比工程,生物与国际差距还是较大...
  3. 第6课 细胞分裂 《小学生C++趣味编程》--C++、Scratch
  4. python需要的基础_推荐收藏!小白不要怕!一周学全Python面试基础(2)
  5. spring boot jwt_springboot整合JWT
  6. 【三】版本之间穿梭切换
  7. Android逆向笔记-通过ApkTool源码分析未能反编译APK的原因
  8. Python笔记-安装python虚拟环境及配置opencv及通过opencv识别颜色
  9. Android逆向笔记-使用Android Killer修改包名Android系统安装相同应用
  10. php返回200,关于API 使用 HTTP 状态码还是全部返回 200