这道题很有意思,看了使用sprintf后果然觉得 掌握好c语言库函数有着很好的优势
O(n)的时间复杂度,只需判断前后两个元素,做累加即可,感觉很有意思
代码如下
#include "stdio.h"
#include "string.h"
int main()
{
char str[1024];
char temp[1024];
int i=0,len;
int count =1;
temp[0]='\0';
scanf("%s",str);
len = strlen(str);
for(i=0;i<len-1;i++)
{
if(str[i+1]==str[i])
{
count++;
}
else
{
sprintf(temp+strlen(temp),"%c%d",str[i],count);
count=1;
}
}
/*the end string num*/
sprintf(temp+strlen(temp),"%c%d",str[i],count);
printf("%s\n",temp);
}