力扣 -- 394. 字符串解码
作者:小教学发布时间:2023-09-27分类:程序开发学习浏览:62
导读:解题方法:参考代码:classSolution{public:stringdecodeString(strings){...
解题方法:
参考代码:
class Solution{
public:
string decodeString(string s)
{
stack<string> sst;
stack<int> dst;
//防止字符串栈为空的时候再追加字符串到栈顶元素
sst.push("");
int n = s.size();
int i = 0;
while(i<n)//最好不要用for循环,容易出问题
{
if (s[i] >= '0' && s[i] <= '9')
{
int tmp = 0;
while (i < n && s[i] >= '0' && s[i] <= '9')
{
tmp = tmp * 10 + (s[i] - '0');
i++;
}
dst.push(tmp);
}
else if (s[i] == '[')
{
//记得++从下一个位置开始找字母字符串,否则会死循环
i++;
string str;
while (i < n && s[i] >= 'a' && s[i] <= 'z')
{
str += s[i];
i++;
}
sst.push(str);
}
else if (s[i] == ']')
{
int k = dst.top();
dst.pop();
string tmp = sst.top();
sst.pop();
for (size_t j = 0; j < k; j++)
{
sst.top() += tmp;
}
//记得要++,否则会死循环
i++;
}
else if (s[i] >= 'a' && s[i] <= 'z')
{
while (i < n && s[i] >= 'a' && s[i] <= 'z')
{
sst.top() += s[i];
i++;
}
}
}
return sst.top();
}
};
- 上一篇:Java以流的形式返回前端
- 下一篇:网络安全(黑客)自学
- 程序开发学习排行
-
- 1鸿蒙HarmonyOS:Web组件网页白屏检测
- 2HTTPS协议是安全传输,为啥还要再加密?
- 3HarmonyOS鸿蒙应用开发——数据持久化Preferences
- 4记解决MaterialButton背景颜色与设置值不同
- 5鸿蒙HarmonyOS实战-ArkUI组件(RelativeContainer)
- 6鸿蒙HarmonyOS实战-ArkUI组件(Stack)
- 7鸿蒙HarmonyOS实战-ArkUI组件(GridRow/GridCol)
- 8[Android][NDK][Cmake]一文搞懂Android项目中的Cmake
- 9鸿蒙HarmonyOS实战-ArkUI组件(mediaquery)
- 最近发表
-
- WooCommerce最好的WordPress常用插件下载博客插件模块的相关产品
- 羊驼机器人最好的WordPress常用插件下载博客插件模块
- IP信息记录器最好的WordPress常用插件下载博客插件模块
- Linkly for WooCommerce最好的WordPress常用插件下载博客插件模块
- 元素聚合器Forms最好的WordPress常用插件下载博客插件模块
- Promaker Chat 最好的WordPress通用插件下载 博客插件模块
- 自动更新发布日期最好的WordPress常用插件下载博客插件模块
- WordPress官方最好的获取回复WordPress常用插件下载博客插件模块
- Img to rss最好的wordpress常用插件下载博客插件模块
- WPMozo为Elementor最好的WordPress常用插件下载博客插件模块添加精简版