点击蓝字原谅赵码匠成人情色
洛谷题单聚会https://www.luogu.com.cn/training/109#problems(复制到浏览器翻开)
外星密码
题目描绘
算法办法
领先明确输入的字符只好数字、大写字母、"["和"]",因此径直对4种字符进行判断即可。遭逢 "["评释与匹配的"]"中间字符串需要解压缩。
jisoo ai换脸这里有三种搞定的想路:
1、行使字符串函数模拟
笔据题意,咱们需要领先找到最内侧的一双括号,对里面的字符串进行解压。
为了找到终末一个左括号"[",需要从后往前遍历字符串:
再从left运转向右寻找,一定能找到与之匹配的右括号:
接下来取出两个括号的中间部分,并进行解压。取出中间部分可以使用substr函数:
对其进行处理后,再将从左括号到右括号的通盘字符替换掉,需要用到字符串的replace函数:
终末就需要达成fun()函数的功能:解压缩子字符串,并复返解压后的字符串。
在fun()函数中,可以使用isdigit()找出子串中的数字cnt,isalpha()找出子串中的字符串。
判断出来后,将子串中的字母构成的字符串轮回cnt遍,真实迷奸女高中生复返该成果即可。具体的fun()函数如下:
无缺的代码,还请读者们理会想路后自行编写,这里赵码匠就不展示了。
2、使用栈进行模拟
由于才略运行与括号关系,意象可以使用栈结构来存储数据。
在读入通盘这个词字符串后,一个一个字符进行判断,遭逢"["和大写字母,都备压入栈,第4色播播当遭逢"]"时进行字符串处理:
(1)先弹出前几位字母,规复成正本的子串X;
(2)再弹出前几位数字,规复成正本的正数D;
(3)稳固多弹出一个"[";
(4)为了类型斡旋,解压后需要将字符串一个一个字符压入栈;
这里要相配稳固,出栈限定与原限定比拟是倒序的,在拼接字符串和数字时要稳固调度。
由于题目中截止解压后的字符串长度不逾越20000,因此可以选择栈来存放。若是长渡过长,这个行径会导致栈溢出。
代码展示:
(3)使用递归想想
商量到最终成果是纯大写字母的字符串,不妨分析一下字母会出目下哪:"[]"的外面和里面,其中,在"[]"里面的字符串,又分为外面的字符串和里面"[]"中的字符串。
因此咱们可以将问题理解成各个子任务:"[]"外部的字符串原样组合,"[]"里面的字符串进行解压。递推公式可以暗意为:
f("A[DX]")="A"+"D*f("X")(其中,A为[]外字符串,D为正数,X为里面压缩的字符串)
限度要求为:f(A)=A,即莫得括号的话,就原样输出。
在代码达成时,可以充分行使cin的特色,一边输入一边递归,最终递归函数的复返值即是谜底。
代码展示:
运行成果

【 原创声明 】原创著作制作不易接待各人共享到微信群、一又友圈等酬酢圈如需转载,可后台留言绽放白名单注:未经允许不得暗里搬运到其他平台若是以为写的可以的话还请帮衬点赞、在看、原谅谢谢!
点共享点储藏点在看点点赞成人情色