1. 注意常用的一些脚标的细节。以及此题涉及的字符串使用,以及指针滑动逻辑
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param str string字符串 
     * @return string字符串
     */
    string compress(string str) {
        // write code here
        int i =0;
        while(i<str.size()){
            if(str[i]==']'){
                int j = i;////j用来向前寻找与]相匹配的[
                int k = 0;//k用来记录'|'所在位置
                while(str[j]!='['){
                    if(str[j]=='|'){
                        k = j;
                    }
                    j--;
                }
                int len = stoi(str.substr(j+1,k-j-1));
                string s2 = str.substr(k+1,i-k-1);
                string s1 = "";
                for(int i =0; i< len;i++){
                    s1+=s2;
                }

                str = str.replace(j,i-j+1,s1);//替换

                i = j;//从替换位开始比较(向后)
            }
            i++;
        }

        return str;


    }
};