1. 题目

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

示例1:输入:"aabcccccaaa"输出:"a2b1c5a3"示例2:输入:"abbccd"输出:"abbccd"解释:"abbccd"压缩后为"a1b2c2d1",比原字符串长度更长。提示:
字符串长度在[0, 50000]范围内。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/compress-string-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 直接模拟即可
class Solution {public:string compressString(string S) {if(S.size()<2)return S;char prev = S[0];int i, count = 1;string ans;for(i = 1; i < S.size(); ++i){if(S[i] == prev)count++;else{ans += prev+to_string(count);count = 1;prev = S[i];}if(i == S.size()-1)ans += prev+to_string(count);if(ans.size() >= S.size())return S;}return ans;}
};

程序员面试金典 - 面试题 01.06. 字符串压缩(字符串)相关推荐

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

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

  2. 程序员面试金典 - 面试题 17.06. 2出现的次数(找递推规律)

    1. 题目 编写一个方法,计算从 0 到 n (含 n) 中数字 2 出现的次数. 示例: 输入: 25 输出: 9 解释: (2, 12, 20, 21, 22, 23, 24, 25)(注意 22 ...

  3. 程序员面试金典 - 面试题 01.02. 判定是否互为字符重排(哈希map)

    1. 题目 给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串. 示例 1: 输入: s1 = "abc", s2 = &qu ...

  4. 程序员面试金典 - 面试题 01.01. 判定字符是否唯一(位运算,牛)

    1. 题目 实现一个算法,确定一个字符串 s 的所有字符是否全都不同. 示例 1: 输入: s = "leetcode" 输出: false 示例 2: 输入: s = " ...

  5. 编写函数判断一个数是否是回文数_程序员面试金典 - 面试题 01.04. 回文排列

    题目难度: 简单 原题链接 题目描述 给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一. 回文串是指正反两个方向都一样的单词或短语.排列是指字母的重新排列. 回文串不一定是字典当中的单词. ...

  6. 程序员面试金典 - 面试题 16.06. 最小差(排序+双指针)

    1. 题目 给定两个整数数组a和b,计算具有最小差绝对值的一对数值(每个数组中取一个值),并返回该对数值的差 示例: 输入:{1, 3, 15, 11, 2}, {23, 127, 235, 19, ...

  7. 程序员面试金典 - 面试题 04.06. 后继者(循环中序遍历)

    1. 题目 设计一个算法,找出二叉搜索树中指定节点的"下一个"节点(也即中序后继). 如果指定节点没有对应的"下一个"节点,则返回null. 示例 1: 输入: ...

  8. 程序员面试金典 - 面试题 05.06. 整数转换(位运算)

    1. 题目 整数转换.编写一个函数,确定需要改变几个位才能将整数A转成整数B. 示例1:输入:A = 29 (或者0b11101), B = 15(或者0b01111)输出:2示例2:输入:A = 1 ...

  9. 程序员面试金典 - 面试题 03.06. 动物收容所(队列)

    1. 题目 动物收容所.有家动物收容所只收容狗与猫,且严格遵守"先进先出"的原则. 在收养该收容所的动物时,收养人只能收养所有动物中"最老"(由其进入收容所的时 ...

最新文章

  1. RHCE课程-RH131Linux管理笔记八-安装和管理XEN虚拟机
  2. 主成分分析(Principal components analysis)
  3. java工具配置_Java™ 教程(配置实用工具)
  4. 五、开始学习Excel函数,效率快速提高
  5. 在命令行中打开远程端的图形应用程序
  6. NOIP201307货车运输
  7. Error applying BeanValidation relational constraints错误的解决
  8. 最近学gvim,mark低先
  9. 1090. Highest Price in Supply Chain (25) dfs
  10. eigen之eigen中文文档
  11. 人工智能综述性论文_人工智能论文研读:深度学习算法与架构综述(包含详细统计表)...
  12. javascript中replace()
  13. c语言课程设计物业,C语言课程设计报告--物业管理系统.doc
  14. matlab解三角函数方程组,用matlab解三角函数方程组:y=A+Bx+Csin(Dx)+Esin(Fx)
  15. python爬虫,python学习,如何用python爬取视频资源
  16. 2022年国家高新企业认定申报最全问答-财务数据篇
  17. “香港科大百万奖金创业大赛”的十年深耕:让硬科技像蒲公英一样散播
  18. u盘打开提示格式化怎么办?有用的方法来了
  19. project Structure中的Artifacts是什么
  20. CSS3学习笔记-05-盒模型详解

热门文章

  1. 面试题:找出公司员工最喜欢的k种水果
  2. linux文本文件和win文本文件的格式互换
  3. Find The Multiple POJ - 1426 (BFS)
  4. 深度学习中 epoch,[batch size], iterations概念解释
  5. C#-类-string/Manth/Random/DateTime-及练习
  6. js获取当前日期星期几
  7. Scala IDE for Eclipse的下载、安装和WordCount的初步使用(本地模式和集群模式)
  8. 单链表的初始化,整表创建,单个元素插入,单个元素删除,整表删除等操作...
  9. BZOJ K大数查询(分治)(Zjoi2013)
  10. 如何计算MP3总时长的问题(三)--对于变比特率MP3求总时长