力扣 -- 394. 字符串解码
作者:小教学发布时间:2023-09-27分类:程序开发学习浏览:77
导读:解题方法:参考代码: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以流的形式返回前端
- 下一篇:网络安全(黑客)自学
- 程序开发学习排行
- 最近发表
-
- Wii官方美版游戏Redump全集!游戏下载索引
- 视觉链接预览最好的WordPress常用插件下载博客插件模块
- 预约日历最好的wordpress常用插件下载博客插件模块
- 测验制作人最好的WordPress常用插件下载博客插件模块
- PubNews Plus|WordPress主题博客主题下载
- 护肤品|wordpress主题博客主题下载
- 肯塔·西拉|wordpress主题博客主题下载
- 酷时间轴(水平和垂直时间轴)最好的wordpress常用插件下载博客插件模块
- 作者头像列表/阻止最好的wordPress常用插件下载博客插件模块
- Elementor Pro Forms最好的WordPress常用插件下载博客插件模块的自动完成字段