题意
给出一个表达式s,此表达式包括数字,字母以及方括号,在方括号前面的数字表示方括号里面的内容重复的次数(括号内的内容可以是字符串或另一个表达式),请编写程序将这个表达式展开成一个字符串。
输入样例:(每一行输入一个表达式)
abc3[a]
3[abc]
4[ac]dy
输出样例:(每一行输出表达式s展开成的字符串)
abcaaa
abcabcabc
acacacacdy
这道题是春招时,参加字节跳动面试时遇到的,当时没有现场敲出来
之后搜索该题,找到一个博客有这道题的题解(博客链接)
但发现有一个样例原博客代码得出的结果有误
abc3[a2[bc]d]
原博客代码结果:abcabcbcabcbcabcbcd
正确结果: abcabcbcdabcbcdabcbcd
修改代码后通过了该样例
总体是递归的思想
solve()表示一个嵌套
每次遇到数字,就进入新的嵌套
' [ ' 是嵌套的开始;' ] '是嵌套的结束
' [ '前一定是数字,用num记录该数字大小,表示这个嵌套要重复num次
#include<bits/stdc++.h>
#define maxn 111111
using namespace std;
char ans[10005],s[10005];
int cur=