字符串原地压缩
来源:互联网 发布:网络搞笑歌曲你是谁 编辑:程序博客网 时间:2024/04/28 00:48
#include <cstring>#include <iostream>#include <utility>using namespace std;// 字符串翻转void reverse(char* start, char* end){while(start < end){swap(*start++, *end--);}}// 将数字转换成字符串存储到numStr中// 返回被转换的数字串长度int setNum(char* numStr, int num){if(num <= 1){return 0;}char* p = numStr;while(num != 0){*p++ = num % 10 + '0';num /= 10;}reverse(numStr, p - 1);return p - numStr;}// 原地压缩字符串void compress(char str[], int len){char* compPtr = str; // 可用于存放压缩字符的地址char preChar = '\0';int sameCount = 1;for(int i = 0; i <= len; ++i){if(str[i] == preChar){++sameCount;}else{if(preChar != '\0'){*compPtr++ = preChar;}if(sameCount > 1) // 压缩连续相同长度大于1的字符串{compPtr += setNum(compPtr, sameCount);}sameCount = 1;}preChar = str[i];}*compPtr = '\0';}int main(int argc, char* argv[]){char str[] = "kkmnqaaabbbbcdefffffffffffffffffffff";int len = strlen(str);cout << "压缩前:" << str << endl;compress(str, len);cout << "压缩后:" << str << endl;return 0;}
运行结果:
压缩前:kkmnqaaabbbbcdefffffffffffffffffffff
压缩后:k2mnqa3b4cdef21 0 0
- 字符串原地压缩
- 字符串原地压缩
- 字符串原地压缩
- 字符串原地压缩
- 字符串原地压缩
- 字符串原地压缩
- 字符串原地压缩
- 154 字符串原地压缩
- 字符串原地压缩
- 字符串原地压缩
- 字符串原地压缩
- 原地压缩字符串的简单实现
- 字符串原地压缩 (思路清晰明了)
- 程序员面试题精选(50):字符串原地压缩
- [转] 程序员面试题精选(50):字符串原地压缩
- 原地操作(删除或压缩)字符串 in-place
- 原地倒转字符串
- 原地排列字符串
- Centos 7 设置默认启动命令窗口以及网卡设置
- Cocos2d-x内存管理
- LightOJ 1422 Halloween Costumes(区间DP)
- c# 中DevExpress的安装
- Java虚拟机(三):垃圾收集方式-分代,复制,标记整理算法
- 字符串原地压缩
- 利用python采集分析人人网社交网络数据
- python challenge 01
- iOS使用pod初次加载错误:Permission denied
- 鼠标经过就放大
- JNA—JNI终结者
- POJ 2635 The Embarrassed Cryptographer (同余线性方程+素数筛)
- TCP服务端和客户端(9)
- groovy脚本中输出调试信息到文件