P1928 外星密码题解
2023-09-27 14:28:13 时间
思路:
起初是想模拟,但是要处理很多层,并不好做,然后想到递归,但是如果整个串一起处理有些复杂,我在题解里看到一种巧妙的方法。我们每次碰到’[’,就说明遇到一个压缩串,然后这个‘[’之后必然会跟一个数字,我们可以单独把它提出来,再看后面那个串,最后把需要加的加上去就行了。
下面是三组测试用例:
AC[3AC[3FUN]]FUN
ACACFUNFUNFUNACFUNFUNFUNACFUNFUNFUNFUN
AC[3FUN]
ACFUNFUNFUN
AC[3TLE][4MLE]WA
ACTLETLETLEMLEMLEMLEMLEWA
注意
这里特别需要注意的是:递归函数的变量,要想放在全局区一定要慎重!在递归函数里声明变量,与将变量声明在全局区是不一样的,放在全局区里会MLE!
原因:你的函数在读入d后会进行递归,如果d作为全局变量,每次递归所改动的都是同一个d,这会导致后面的循环得到错误的次数。
#include <bits/stdc++.h>
using namespace std;
string expand() {
int d;
char x;
string s;
while (cin >> x) {
if (x == '[') {
cin >> d;
string t = expand();
while (d--) s += t;
} else if (x == ']')
return s;
else s += x;
}
return s;
}
int main() {
cout << expand();
return 0;
}
相关文章
- git 配置 https和ssh 免密码登录 常用操作命令
- 如何解决excel工作簿保护密码
- 3款开源的密码管理器 拿走不谢
- 移动支付漏洞大 没密码也能买买买
- 批量实现多台服务器之间 SSH 无密码登录的相互信任关系
- 重设域管理员密码-window server 2008 R2
- mysql5.7的密码
- 【甄选靶场】Vulnhub百个项目渗透——项目一:GoldenEye(密码爆破,图片逆向分析,内核提权)
- Python 实现密码规则验证(正则表达式)
- java 密码MD5加密
- 正则表达式 | 关于正则表达式匹配密码问题
- 提供密码相关的工具类
- 在设计DJANGO用户更改密码时,出现NoReverseMatch at /account/password-change/这种妖精如何办?
- Android 使用MD5对SharedPreferences密码进行加密
- 【第九课】MriaDB密码重置和慢查询日志