博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Cracking the Coding Interview》——第1章:数组和字符串——题目5
阅读量:4445 次
发布时间:2019-06-07

本文共 1353 字,大约阅读时间需要 4 分钟。

2014-03-18 01:40

题目:对字符串进行类似的压缩,如果压缩完了长度更长,则返回不压缩的结果。比如:aabcccccaaa->a2b1c5a3,abc->abc。

解法:Count and say.

代码:

1 // 1.5 Implement a method to perform basic string compression using the counts of repeated characters. For example, the string aabcccccaaa would become a2b1c5a3. If the compressed string  wouldn't become smaller than the original string, your method should return the original string. 2 #include 
3 #include
4 using namespace std; 5 6 class Solution { 7 public: 8 string compressString(const string str) { 9 string res = "";10 11 int i, j;12 int len = (int)str.length();13 char tmp[50];14 15 i = 0;16 while (i < len) {17 j = i + 1;18 while (j < len && str[i] == str[j]) {19 ++j;20 }21 sprintf(tmp, "%c%d", str[i], j - i);22 res = res + string(tmp);23 i = j;24 }25 26 if (res.length() < str.length()) {27 return res;28 } else {29 return str;30 }31 }32 };33 34 int main()35 {36 string str;37 Solution sol;38 39 while (cin >> str) {40 cout << sol.compressString(str) << endl;41 }42 43 return 0;44 }

 

转载于:https://www.cnblogs.com/zhuli19901106/p/3606674.html

你可能感兴趣的文章
扫描目录下的文件并拼接在一起
查看>>
ELK 分布式日志处理 10.12
查看>>
Java虚拟机详解05----垃圾收集器及GC参数
查看>>
7. 单位,移动布局
查看>>
inux中bin与sbin目录的作用及区别介绍
查看>>
USACO 3.1 Contact
查看>>
Office之什么是高内聚低耦合
查看>>
一些奇怪的问题求回答
查看>>
这些年踩过的坑
查看>>
iOS开发拓展篇——如何把项目托管到GitHub
查看>>
性能优化之数据库优化
查看>>
类的继承、菱形继承、派生、多态
查看>>
mysql约束
查看>>
javascript鼠标及键盘事件总结及案例
查看>>
mysql表之间的关系及级联操作
查看>>
mac 搭建virtualenv的那些坑
查看>>
多路复用IO模型
查看>>
并发、串行、并行及多道技术原理
查看>>
hashlib、pickle、hmac、logging模块使用
查看>>
javascript常用知识点总结
查看>>