- 注意常用的一些脚标的细节。以及此题涉及的字符串使用,以及指针滑动逻辑
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;
}
};