/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param s string字符串 
 * @return string字符串
 */
 #include <string.h>
#define size 51
 char *chuinkuo(char*s){                       //像名字一样,找到第一个"]",操作一下去除第一对括号
      int i=0;int len=strlen(s);int str=0;
      for(i=0;i<len;i++){
        if(s[i]==']'){                             //找到第一个"]"  
            break;
        }
        else{
            str++;                                  //用stl 和str,标记[],两个括号的下标
        }
      }
      if(str==len){                                   //没有括号直接返回
        return s;
      }else{
        char*t=NULL;                                 //把第一对括号拆开,返回这个t
        t=malloc(sizeof(char)*size);
        int stl=0;
        for(i=str-1;i>0;i--){
            if(s[i]=='['){                             //这里找到了的[的下标
             stl=i;
             break;
            }
        }
        int num=0;                                    //stl前一个就是复制的倍数了
        num=s[i-1]-'0';
        printf("num=%d\n",num);
        strncpy(t,s,stl-1);                             //前面的全部复制copy
        int k=0;int j=stl-1;
        while(num--){                                    //num遍,k用来复制体循环,j用来t的循环
             for(k=0;k<str-stl-1;k++){
                t[j++]=s[stl+k+1];
             }
        }
        i=str+1;                                        //s的第一个]后的全部复制到t的后面
        while(i<len){
            t[j++]=s[i++];
        }
        return t;
      }
 }

char* decodeString(char* s ) {
    // write code here
    int i=0,len=strlen(s);                             
    printf("%d\n",len);
    s=chuinkuo(s);                           //先去除一遍,如果长度没变就,说明没有括号了
    while(strlen(s)!=len){     //注意这里都是s,其实不一样不申请了。做一遍上面的功能发现长度没变就表示没有括号了
        len=strlen(s);
        printf("%d\n",len);
        s=chuinkuo(s);
    }
    return s;
}