知识点总结:
- 这里的字符串中s[i]是数字时转为数字用的是:s[i] - ’ 0 ',asic码来转化,不用stoi那个
- 多个数位的情况23[abb],
int val = 0很重要,这样就第一个数位是个位的情况也能直接用
if(true == isdigit(s[i])){
int val = 0;
while(true == isdigit(s[i])){
val = val*10+s[i]-'0';
}
}
3.int j = i+1,这样可以直接定位字母开始位置,跳过[
4.判断[]的个数,即处理【】嵌套的情况
int sum = 1;//下面至少有一个[
//确定有几个[],要考虑到3[a2[c]]这样用例
while (sum>0) {
if ('['==s[j]) {
sum++;
}
if (']'==s[j]) {
sum--;
}
j++;
}
————————————————
版权声明:本文为CSDN博主「努力的老周」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/justidle/article/details/104952926
//递归解决[i, j]内部的字符串
string ret = decodeString(s.substr(i+1, j-i-2));
6.两个参数用法:
字符串.substr(参数1,参数2)
参数1(可以是0、正整数、负数)
参数1:
如果是0或正整数,则代表字符串截取的起始下标
如果是负数,则代表从倒数第几个字符开始截取
参数2:
字符串截取字符的个数(正整数)
如果是0或负数,则会返回空字符串
————————————————
版权声明:本文为CSDN博主「是小夏呀」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sinat_27811275/article/details/112618826