程序员面试金典 - 面试题 01.06. 字符串压缩(字符串)
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. 字符串压缩(字符串)相关推荐
- 程序员面试金典面试题 01.06. 字符串压缩
前言 本系列文章为<程序员面试金典>刷题笔记. 题目位置:字符串压缩 题集:程序员面试金典 题目 字符串压缩.利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能.比如,字符串a ...
- 程序员面试金典 - 面试题 17.06. 2出现的次数(找递推规律)
1. 题目 编写一个方法,计算从 0 到 n (含 n) 中数字 2 出现的次数. 示例: 输入: 25 输出: 9 解释: (2, 12, 20, 21, 22, 23, 24, 25)(注意 22 ...
- 程序员面试金典 - 面试题 01.02. 判定是否互为字符重排(哈希map)
1. 题目 给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串. 示例 1: 输入: s1 = "abc", s2 = &qu ...
- 程序员面试金典 - 面试题 01.01. 判定字符是否唯一(位运算,牛)
1. 题目 实现一个算法,确定一个字符串 s 的所有字符是否全都不同. 示例 1: 输入: s = "leetcode" 输出: false 示例 2: 输入: s = " ...
- 编写函数判断一个数是否是回文数_程序员面试金典 - 面试题 01.04. 回文排列
题目难度: 简单 原题链接 题目描述 给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一. 回文串是指正反两个方向都一样的单词或短语.排列是指字母的重新排列. 回文串不一定是字典当中的单词. ...
- 程序员面试金典 - 面试题 16.06. 最小差(排序+双指针)
1. 题目 给定两个整数数组a和b,计算具有最小差绝对值的一对数值(每个数组中取一个值),并返回该对数值的差 示例: 输入:{1, 3, 15, 11, 2}, {23, 127, 235, 19, ...
- 程序员面试金典 - 面试题 04.06. 后继者(循环中序遍历)
1. 题目 设计一个算法,找出二叉搜索树中指定节点的"下一个"节点(也即中序后继). 如果指定节点没有对应的"下一个"节点,则返回null. 示例 1: 输入: ...
- 程序员面试金典 - 面试题 05.06. 整数转换(位运算)
1. 题目 整数转换.编写一个函数,确定需要改变几个位才能将整数A转成整数B. 示例1:输入:A = 29 (或者0b11101), B = 15(或者0b01111)输出:2示例2:输入:A = 1 ...
- 程序员面试金典 - 面试题 03.06. 动物收容所(队列)
1. 题目 动物收容所.有家动物收容所只收容狗与猫,且严格遵守"先进先出"的原则. 在收养该收容所的动物时,收养人只能收养所有动物中"最老"(由其进入收容所的时 ...
最新文章
- RHCE课程-RH131Linux管理笔记八-安装和管理XEN虚拟机
- 主成分分析(Principal components analysis)
- java工具配置_Java™ 教程(配置实用工具)
- 五、开始学习Excel函数,效率快速提高
- 在命令行中打开远程端的图形应用程序
- NOIP201307货车运输
- Error applying BeanValidation relational constraints错误的解决
- 最近学gvim,mark低先
- 1090. Highest Price in Supply Chain (25) dfs
- eigen之eigen中文文档
- 人工智能综述性论文_人工智能论文研读:深度学习算法与架构综述(包含详细统计表)...
- javascript中replace()
- c语言课程设计物业,C语言课程设计报告--物业管理系统.doc
- matlab解三角函数方程组,用matlab解三角函数方程组:y=A+Bx+Csin(Dx)+Esin(Fx)
- python爬虫,python学习,如何用python爬取视频资源
- 2022年国家高新企业认定申报最全问答-财务数据篇
- “香港科大百万奖金创业大赛”的十年深耕:让硬科技像蒲公英一样散播
- u盘打开提示格式化怎么办?有用的方法来了
- project Structure中的Artifacts是什么
- CSS3学习笔记-05-盒模型详解
热门文章
- 面试题:找出公司员工最喜欢的k种水果
- linux文本文件和win文本文件的格式互换
- Find The Multiple POJ - 1426 (BFS)
- 深度学习中 epoch,[batch size], iterations概念解释
- C#-类-string/Manth/Random/DateTime-及练习
- js获取当前日期星期几
- Scala IDE for Eclipse的下载、安装和WordCount的初步使用(本地模式和集群模式)
- 单链表的初始化,整表创建,单个元素插入,单个元素删除,整表删除等操作...
- BZOJ K大数查询(分治)(Zjoi2013)
- 如何计算MP3总时长的问题(三)--对于变比特率MP3求总时长