展开字符串

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 3857 Accepted Submission(s): 1846

Problem Description
在纺织CAD系统开发过程中,经常会遇到纱线排列的问题。
该问题的描述是这样的:常用纱线的品种一般不会超过25种,所以分别可以用小写字母表示不同的纱线,例如:abc表示三根纱线的排列;重复可以用数字和括号表示,例如:2(abc)表示abcabc;1(a)=1a表示a;2ab表示aab;如果括号前面没有表示重复的数字出现,则就可认为是1被省略了,如:cd(abc)=cd1(abc)=cdabc;这种表示方法非常简单紧凑,也易于理解;但是计算机却不能理解。为了使计算机接受,就必须将简单紧凑的表达方式展开。某ACM队接受了此项任务。现在你就是该ACM队的一员,请你把这个程序编写完成。
已知条件:输入的简单紧凑表达方式的长度不超过250个字符;括号前表示重复的数不超过1000;不会出现除了数字、括号、小写字母以外的任何其他字符;不会出现括号不配对等错误的情况(错误处理已由ACM其他队员完成了)。

Input
本题有多个测试数据组,第一行输入的就是数据组数N,接着就是N行表达式,表达式是按照前面介绍的意义书写的。

Output
输出时含有N行,每行对应一个输入的表达式。

Sample Input
2
1(1a2b1(ab)1c)
3(ab2(4ab))

Sample Output
abbabc
abaaaabaaaababaaaabaaaababaaaabaaaab

Author
Cai Minglun

Source
杭电ACM集训队训练赛(VI)

问题链接:HDU1274 展开字符串
问题简述:(略)
问题分析
    这是一个文本处理问题,按规则(语法)展开字符串。
    解决这个问题可以有2种方法,一是递归子程序,二是使用堆栈。这2种方法原理上是相同的。
程序说明:(略)
参考链接:(略)
题记:(略)

AC的C++语言程序如下:

/* HDU1274 展开字符串 */#include <bits/stdc++.h>using namespace std;int k;string fun(string s)
{string t="";int n = 0;for(; s[k]; k++){if(isdigit(s[k])) n = n * 10 + s[k] - '0';else if(isalpha(s[k])) {if(n) while(n--) t += s[k];else t += s[k];n = 0;}else if(s[k] == '(') {if(n == 0) n = 1;k++;string ans = fun(s);while(n--) t += ans;n = 0;} elsereturn t;}return t;
}int main()
{int t;cin >> t;while(t--) {string s;cin >> s;k = 0;cout << fun(s) << endl;}
}

HDU1274 展开字符串【文本处理】相关推荐

  1. HDU-1274 展开字符串

    Problem Description 在纺织CAD系统开发过程中,经常会遇到纱线排列的问题. 该问题的描述是这样的:常用纱线的品种一般不会超过25种,所以分别可以用小写字母表示不同的纱线,例如:ab ...

  2. NLP:以周杰伦的《Mojito》歌词为例字符串切分之清除一段由列表组成的字符串文本中的所有杂乱符号

    NLP:以周杰伦的<Mojito>歌词为例字符串切分之清除一段由列表组成的字符串文本中的所有杂乱符号 目录 以周杰伦的<Mojito>歌词为例字符串切分之清除一段由列表组成的字 ...

  3. 趣学python3(1)-f前缀格式化字符串文本

    f前缀格式化字符串文本 print("您叫什么名字") name=input() print(f"{name},很高兴认识你") width = 15 prec ...

  4. HDOJ 1274 展开字符串

    复杂的递归... 展开字符串 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T ...

  5. 展开字符串(dfs)

    展开字符串 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  6. 用java实现对字符串文本的哈夫曼编码与解码

    哈夫曼树与编码的创建过程及发展由来 这里基础知识就不再叙述了,请参考博客 https://www.cnblogs.com/alomsc/p/12736502.html#:~:text 写的非常详细,初 ...

  7. python中的字符串文本必须用什么括起来_懒人学Python-边学边练-字符串篇

    https://m.toutiao.com/is/JccyEde/ 一枚搬运工,程人的世界不仅有Command+C,还有Command+V 字符串,其实大家读了前边的文章,就一定不陌生,前一章里各种输 ...

  8. WPS Excel正则表达式函数提取复杂字符串文本

    WPS Excel本身没有正则表达式函数,这里利用 wps js自定义函数的功能来实现,封装好函数后就可以在单元格用公式使用正则表达式了,wps2020以后的版本只要支持js宏都可以用,先看动画效果: ...

  9. python numpy np.fromstring()函数(从字符串文本中提取数字,返回一维数组)(爬虫提取数字挺好用的)

    from numpy\core\multiarray.py def fromstring(string, dtype=None, count=-1, sep=''): # real signature ...

最新文章

  1. php7 v8js,Centos 7PHP7.0 安装V8JS扩展几乎都能安装成功
  2. 《强化学习周刊》第6期:强化学习应用之推荐系统
  3. 【转】Office 2003 EXCEL多窗口打开
  4. ASVL_PAF_RGB24_B8G8R8 格式转换
  5. go语言之行--golang核武器goroutine调度原理、channel详解
  6. JAVA实现创建Excel表并导出(转发)
  7. OGG之Replicate进程
  8. mac solr mysql 配置文件_Solr配置文件浅析
  9. html5carousel图片轮播,jQuery响应式轮播图插件VM Carousel
  10. 源码追踪,解决Could not locate executable null\bin\winutils.exe in the Hadoop binaries.问题
  11. 原生JDBC连接MySQL数据库踩的坑
  12. FFmpeg编写的代码
  13. linux 提取执行命令后的输出 shell脚本
  14. 485通信c语言讲解,51单片机485通讯讲解 通俗易懂
  15. python生成序列_python 之 生成序列号
  16. 如果时间不够 ,无法进行充分的测试怎么办?
  17. DBF文件格式及读写实践
  18. linux gtk主题安装教程,如何获取、安装和制作 GTK 主题
  19. Java8新特性 Stream流式思想(三)
  20. Chrome浏览器清除cookies方法

热门文章

  1. RISC-V教材勘误
  2. [胡言乱语] 20170622
  3. 容器大小_C++复习篇(7)序列式容器vector
  4. 我对骨骼动画的理解(最精减的骨骼动画类)
  5. matlab数据分类与识别,Matlab图像识别/检索系列(3)—10行代码完成caltech图象集分类和识别...
  6. 软件测试python测试步骤_软件测试员必备基础:3分钟带你入门自动化测试!
  7. python request 库传送formdata_Python Requests库 form-data 上传文件操作
  8. Doris之BE的所有配置项(全面)
  9. android 手机工具箱,Android超级工具箱,你的手机可能缺一个!
  10. java split 实现_PL/SQL实现JAVA中的split()方法的例子