复杂的递归。。。

展开字符串

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

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)
Recommend
lcy
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
char str[300];
int len;
int output(int k)
{
int i,e;
for(i=k;i<len&&str!=')';i++)
{
int nth=0;
while( isdigit(str) )
{
nth=nth*10+(str-'0');
i++;
}
if(nth==0)  nth=1;
if(str=='(')
{
while(nth--)
e=output(i+1);
i=e;
}
else if( isalpha(str) )
{
while(nth--)
putchar(str);
}
}
if(str==')')
return i;
}
int main()
{
int T;
cin>>T;
while(T--)
{
cin>>str;
len=strlen(str);
output(0);
cout<<endl;
}
return 0;
}

转载于:https://www.cnblogs.com/CKboss/archive/2013/06/08/3351031.html

HDOJ 1274 展开字符串相关推荐

  1. 展开字符串(dfs)

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

  2. HDU1274 展开字符串【文本处理】

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

  3. HDU-1274 展开字符串

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

  4. 杭电OJ分类题目(2)

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(2) HDU Water~~~ HDU 100 ...

  5. java字符串连接效率_关于java:字符串连接中的“+”是否会影响效率?

    本问题已经有最佳答案,请猛点这里访问. 我在java中使用过String,StringBuilder和StringBuffer. 我想到了这个问题,而我从效率的角度思考. 字符串连接中的"+ ...

  6. [转载] python 字符串方法大全

    参考链接: Python字符串| rpartition 4.7.1.字符串方法 字符串实现所有常见的序列操作,以及下面描述的其他方法. 字符串还支持两种类型的字符串格式化的,一个提供了很大程度的灵活性 ...

  7. Python数据类型之字符串类型

    Python字符串类型 单行字符串 多行字符串 字符串是数组 裁切字符串 正索引 负索引 字符串方法 获取字符串长度的len()方法 删除开头和结尾空白字符的strip()方法 只删除开头的前导符的l ...

  8. 06-ES6语法:展开运算符

    本文我们介绍ES6的展开运算符.展开运算符(spread operator)允许一个表达式在某处展开.展开运算符在多个参数(用于函数调用)或多个元素(用于数组字面量)或者多个变量(用于解构赋值)的地方 ...

  9. python 字符串方法大全

    4.7.1.字符串方法 字符串实现所有常见的序列操作,以及下面描述的其他方法. 字符串还支持两种类型的字符串格式化的,一个提供了很大程度的灵活性和定制(见str.format(), 格式化字符串的语法 ...

最新文章

  1. Xamarin XAML语言教程构建进度条ProgressBar
  2. linux7 rpmdb 修复,Linux[CentOS 7]rpmdb open failed错误修复
  3. 敏感词过滤,并实现替换
  4. GhostNet 详解
  5. tkinter教程——toplevel
  6. mac软件下载常用经典网站
  7. 【UV打印机】RYPC打印软件教程(一)-软件简介
  8. 秒级去重:ClickHouse在腾讯海量游戏营销活动分析中的应用
  9. 东方联盟郭盛华发家史:8年来实现跨越式发展
  10. IIS发布网站,如此简单
  11. 美国德保罗大学计算机排名,2018福布斯美国最佳大学排名德保罗大学排名第243...
  12. react-router嵌套路由页面无法显示
  13. 设置密码隐密文件工具 v1.4
  14. C/C++要点全掌握(二)——堆栈、指针
  15. JAVA计算机毕业设计助农脱贫系统Mybatis+源码+数据库+lw文档+系统+调试部署
  16. Deep Learning for Single Image Super-Resolution: A Brief Review SISR综述分析
  17. OneNote 无法复制图片中的文本
  18. routeros无线网桥网卡型号匹配表
  19. ubuntu oracle 12c,在Ubuntu上怎么装oracle12c
  20. vlive android app,v live app

热门文章

  1. RestTemplate返回List类型,用数组接收
  2. IDEA下查看Java字节码(插件ByteCode Viewer)
  3. Java堆溢出错误:java.lang.OutOfMemoryError: Java heap space
  4. Android开发笔记(序)写在前面的目录
  5. Android开发笔记(一百四十六)仿支付宝的支付密码输入框
  6. 打开Android Studio报错required plugin “Android Support” is disabled
  7. 新微擎 v1.7.9 图文回复 标题emoji
  8. swoole redis
  9. 把汉化的eclipse还原为英语版的小绝招
  10. 《机器学习系统设计:Python语言实现》一2.2 IPython控制台