当前位置: 首页 > news >正文

题解:洛谷 P1928 外星密码

【题目来源】

洛谷:P1928 外星密码 - 洛谷 (luogu.com.cn)

【题目描述】

有了防护伞,并不能完全避免 \(2012\) 的灾难。地球防卫小队决定去求助外星种族的帮助。经过很长时间的努力,小队终于收到了外星生命的回信。但是外星人发过来的却是一串密码。只有解开密码,才能知道外星人给的准确回复。解开密码的第一道工序就是解压缩密码,外星人对于连续的若干个相同的子串 X 会压缩为 [DX] 的形式(\(D\) 是一个整数且 \(1\le D\le 99\)),比如说字符串 CBCBCBCB 就压缩为 [4CB] 或者[2[2CB]],类似于后面这种压缩之后再压缩的称为二重压缩。如果是 [2[2[2CB]]] 则是三重的。现在我们给你外星人发送的密码,请你对其进行解压缩。

【输入】

输入一行,一个字符串,表示外星人发送的密码。

【输出】

输出一行,一个字符串,表示解压缩后的结果。

【输入样例】

AC[3FUN]

【输出样例】

ACFUNFUNFUN

【解题思路】

image

【算法标签】

《洛谷 P1928 外星密码》 #模拟# #字符串# #递归# #分治#

【代码详解】

#include <bits/stdc++.h>
using namespace std;// 递归解压缩字符串函数
string f(string s) 
{string ans; // 存储解压后的结果// 遍历输入字符串的每个字符for (int i = 0; i < s.length(); i++) {// 如果是普通字符,直接加入结果if (s[i] != '[') {ans += s[i];continue;}// 处理压缩部分 [DX] 格式int mark = i + 1; // 数字开始位置int d = 0;        // 重复次数Dint right = 1;    // 括号嵌套计数器// 解析数字Dwhile (s[mark] >= '0' && s[mark] <= '9') {d = d * 10 + (s[mark] - '0');mark++;}// 找到匹配的右括号位置for (int j = i + 1; ; j++) {if (s[j] == '[') right++;   // 遇到左括号,嵌套层数+1if (s[j] == ']') right--;   // 遇到右括号,嵌套层数-1// 找到当前层级的右括号if (right == 0) {// 提取X部分并递归解压string x = s.substr(mark, j - mark);x = f(x); // 递归解压X// 将D个X添加到结果中for (int k = 0; k < d; k++) ans += x;i = j; // 跳过已处理的部分break;}}}return ans;
}int main() 
{string s;cin >> s;          // 读取压缩字符串cout << f(s);      // 输出解压结果return 0;
}

【运行结果】

AC[3FUN]
ACFUNFUNFUN
http://www.jsqmd.com/news/389944/

相关文章:

  • 题解:洛谷 P1164 小A点菜
  • 深入解析:Hologres Dynamic Table 在淘天价格力的业务实践
  • 题解:洛谷 P1464 Function
  • 标准 Hough 变换、修正 Hough 变换和序列 Hough 变换三种典型航迹起始算法研究附Matlab代码
  • 交稿前一晚!8个降AIGC工具测评:自考降AI率必备攻略
  • 差分进化算法(DE)与缩放因子自适应差分进化(SHADE)在CEC2005函数寻优中的性能研究附Matlab代码
  • 这次终于选对!8个AI论文平台测评:本科生毕业论文写作必备工具推荐
  • WOA-SVM时序预测模型研究——基于鲸鱼优化算法的支持向量机时序预测方法附Matlab代码
  • 表贴式PMSM的直接转矩控制(DTC)仿真模型附Simulink仿真
  • 比较CVaR最优投资组合与均值-方差投资组合以及其他模型,包括全局最小方差(GMVP)和市场投资组合附Matlab代码
  • 这次终于选对!8个一键生成论文工具:自考毕业论文+开题报告高效写作测评
  • 题解:洛谷 P1028 [NOIP 2001 普及组] 数的计算
  • 2026年IEEE IOTJ SCI2区TOP,面向关键节点感知的灾害区域无人机集群路径规划,深度解析+性能实测
  • 2026年上班族香港优才靠谱品牌指南:从政策落地到全周期服务对比 - 速递信息
  • 采用单极表面电荷密度方法数值计算长且均匀磁化圆柱体极尖间气隙的磁场,并与类似点磁单极的近似方法进行比较附Matlab代码
  • 题解:洛谷 P1044 [NOIP 2003 普及组] 栈
  • 超级创新【物流中心选址】基于企鹅优化算法在物流中心选址的应用附Matlab代码
  • 新手也能上手 10个降AI率软件降AIGC网站:继续教育必备工具深度测评与推荐
  • 救命神器 10个AI论文写作软件测评:专科生毕业论文+开题报告高效写作指南
  • 探索三相交错并联Buck电路双闭环控制的MATLAB/Simulink仿真之旅
  • 【8*】WQS二分学习笔记
  • 题解:洛谷 P2036 [COCI 2008/2009 #2] PERKET
  • 2026年考察升降平台工厂,重点关注这些核心指标,翻转平台/装车平台/自行走升降机/移动登车桥,升降平台厂商推荐榜 - 品牌推荐师
  • 不踩雷!继续教育降AI率工具 —— 千笔·专业降AIGC智能体
  • 照着用就行:千笔AI,抢手爆款的AI论文写作软件
  • [嵌入式系统-231]:传感器:模拟信号检测
  • 题解:洛谷 P1002 [NOIP 2002 普及组] 过河卒
  • 定稿前必看!AI论文网站 千笔AI VS 锐智 AI,专科生专属神器!
  • 实测才敢推!最强的降AI率平台 —— 千笔·降AIGC助手
  • 专科生收藏!千笔,普遍认可的AI论文平台