压缩字符串

来源:互联网 发布:黑马程序员就业怎么样 编辑:程序博客网 时间:2024/05/07 07:26

给你一个字符串,比如 “AAABBBCDEEFFF”,把这个字符串变成 "A3B3CDE2F3",达到压缩的目的。

相关问题1:Remove Duplicates From Sorted Array I

相关问题2:Remove Duplicates from Sorted Linked List 从排序链表中去掉重复值

用in-place的方式进行压缩,代码如下:

#include <iostream>#include <vector>#include <string>using namespace std;#include <stdio.h>#include <stdlib.h>void compress(char str[]){int i=0, j=1; // i is the slow pointer, j is the fast pointerint count = 1; // count of each characterfor(int j=1; j<=strlen(str); j++) // Note: j<=strlen(str){if(str[j]==str[j-1])count++;else{str[i] = str[j-1];if(count>1){i++;str[i]='0'+count;}i++;count=1;}}str[i]='\0';}int main(){char arr[]="1234567";compress(arr);cout<<arr;}