首先想到是是用string类来做,但是string类好像不支持sprintf函数,所以改用C语言中的字符串来处理。至于为什么要用sprinf,等下解释。
该题的思路是找出相邻相等的字符,然后统计个数,把个数写进字符串中,然后删除多余的字符,但是删除麻烦,就用惰性删除的方法(不知道在哪看到的这个名词)
如果相同字符的个数小于10时,可以直接赋值写进字符串 str[index1]=_count;
但是如果大于10,就不好了弄了,所以我用了sprintf函数实现。
下面是实现代码:
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
void encode(char *str,int length);
int main()
{
int n;
int length;
int i;
char str[11111];
cin>>n;
while(n--)
{
cin>>str;
length = strlen(str);
encode(str,length);
for(i=0;i!=length;i++)
{