zoj2886

来源:互联网 发布:华东忆事淘宝 编辑:程序博客网 时间:2024/05/16 09:13

题目大意:

废话不多说,举个例子,对于122344111,我们说“1个1,2个2,1个3,2个4,3个1”,所以就是1122132431.我们的任务就是写出这样的字符串。

解题思路:

这个。。。没什么好说的把,就是细节要处理好。。。魔鬼藏在细节里

代码如下:

#include<iostream>#include<string.h>#include<stdio.h>using namespace std;typedef struct{  int mark;  int number;}ma;int main(){  int t,j,flag;  char str[1100];  ma node[1100];  scanf("%d",&t);  while(t--)  {     scanf("%s",str);     int i=j=flag=0;     while(i<strlen(str)-1)     {       int count=1;       while((str[i]==str[i+1])&&(i<strlen(str)-1))       {         count++;         i++;       }       if(i!=strlen(str)-1)       {         node[j].mark=str[i]-'0';         node[j].number=count;         j++;         i++;       }       else       {         node[j].mark=str[i]-'0';         node[j].number=count;         flag=1;       }     }     if(!flag)     {       node[j].mark=str[strlen(str)-1]-'0';       node[j].number=1;     }     int l=j;     for(int i=0;i<=l;i++)     {       printf("%d%d",node[i].number,node[i].mark);     }     printf("\n");  }  return 0;}
0 0
原创粉丝点击