class Solution {
public:
string src;
ssize_t ptr;
int getDigits(){
int ret = 0;
while(ptr < src.size()&&isdigit(src[ptr])){
ret = ret * 10 + src[ptr++]-'0';
}
return ret;
}
string getString(){
if(ptr == src.size() || src[ptr] == ']'){
return "";
}
char cur = src[ptr];
int reptime = 1;
string ret;
if(isdigit(cur)){
reptime = getDigits();
++ptr;
string str = getString();
++ptr;
while (reptime--) ret += str;
}else if(isalpha(cur)){
ret = string(1, src[ptr++]);
}
return ret + getString();
}
string decodeString(string s){
src = s;
ptr = 0;
return getString();
}
};
字符串编码
最新推荐文章于 2022-07-13 21:38:43 发布