http://acm.hdu.edu.cn/showproblem.php?pid=1274

展开字符串

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

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
 
同学说了一下这题,感觉好奇就写了,刚写的时候没思路就看了别人的代码(其实这样不好),一看很容易懂,如果遇到’(‘就让它继续递归,如果遇到‘)’就结束,其余的都是细节方面的问题,看看觉得好水呀!!!可是自己没写过,就是没思路
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm> using namespace std; #define N 1100 char s[N]; int DFS(int ith)
{
int k, e, i; for( i=ith; s[i] && s[i]!=')'; i++)
{
for(k=; s[i] && (s[i]>='' && s[i]<=''); i++)
k = k* + s[i]-'';
if(!k) k = ; if(s[i]=='(')
{
while(k--)
e = DFS(i+);
i = e;
}
else
{
while(k--)
putchar(s[i]);
}
}
if(s[i]==')') return i;
} int main()
{
int t;
scanf("%d", &t);
while(t--)
{
scanf("%s", s); DFS();
printf("\n");
}
return ;
}

(DFS)展开字符串 -- hdu -- 1274的更多相关文章

  1. HDU 1274 展开字符串 (递归+string类)

    题目链接:HDU 1274 展开字符串 中文题. 左括号进入DFS函数,右括号return到上一层. 注意return回去的是这个一层递归中的括号中的字母串. AC代码: #include<st ...

  2. 展开字符串(dfs)

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

  3. 1267: 展开字符串(Java)

    WUSTOJ 1267: 展开字符串 参考 jamesMusk的博客--Java 判断字符是大写小写或者数字 Description   给三个参数a1,a2,a3和一个字符串,请按以下要求展开该字符 ...

  4. HDU 1274 递归拼接字符串

    题目大意: 根据所给的数字,表示其相连的字符的输出个数,或是下一个括号中的所有字符的输出个数 每一个相互对应的 '(' 和 ')' 中的所有字母均作为一组数据处理 在每一次dfs过程中都处理好这样一个 ...

  5. 【HDOJ】1274 展开字符串

    栈的应用,需要注意括号前可能没有数字的情况. #include <cstdio> #include <cstring> #include <cstdlib> #in ...

  6. Luogu 1098 - 字符串的展开 - [字符串操作][模拟]

    题目链接:https://www.luogu.org/problemnew/show/P1098 题目描述在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中 ...

  7. DFS练习一---HDU 1342

    参考文章来源:http://blog.csdn.net/pengwill97/article/details/54850852 题目在这里:HDU.1342 最近在练习DFS,就找了一些题来做,力求自 ...

  8. DFS(连通块) HDU 1241 Oil Deposits

    题目传送门 /* DFS:油田问题,一道经典的DFS求连通块.当初的难题,现在看上去不过如此啊 */ /************************************************ ...

  9. 字符串 HDU 1039

    规则: 1.必须至少包含一个元音字母.a e i o u 2.不能包含三个连续元音或者连续辅音字母. 3.不能包含两个连续字母,除了'ee'和'oo'. PS:字母个数(1<= N <=2 ...

随机推荐

  1. input框和文字对齐问题

    css样式解决! style="vertical-align: text-bottom;margin-bottom: 2px;"一.问题产生的条件对于14像素大小的字体是没有本篇所 ...

  2. 安装nginx流程

    1.下载nginx压缩包: 下载nginx:http://nginx.org/en/download.html 本教程下载 nginx-1.14.0.zip(http://nginx.org/down ...

  3. 基础数据类型补充,及capy daty7

    1,基础数据类型,总结补充. int:bit_lenth() str: captilze() 首字母大写,其余小写. upper() 全大写. lower() 全小写. find() 通过元素找索引, ...

  4. json与字符串转换

    一.json转为字符串 JSON.stringify(...) 二.字符串转为json JSON.parse(...)

  5. 简单的node 服务端 响应get,返回json数据;

    原文:http://blog.csdn.net/xn_28/article/details/50837019 const http = require('http'); const hostname ...

  6. jmeter多用户并发

    1.需要参数化 2.单用户需要在请求头里面传入cookie

  7. idea15 生成mybatis代码

    pom.xml <build> <finalName>mybatis_generator</finalName> <plugins> <plugi ...

  8. android Run模式也会出现"Waiting for debugger"的解决方法

    android Run模式也会出现"Waiting for debugger"的解决方法 出现“waiting for debugger”窗口是在debug模式下运行出现的.但是, ...

  9. 【Java】Maven Tomcat插件使用

    本例是用的是tomcat7-maven-plugin 插件 依赖 tomcat7-maven-plugin 插件的pom.xml依赖为 <dependency> <groupId&g ...

  10. word表格如何实现序号自动填充

    打开word文档,我们需要在如下表格中的准考证号这一列中输入准考证号,手工输入肯定很慢,且容易出错.   我们先选中需要填充准考证号的表格.   选择功能区域中的“开始”,在“段落”组中点击“编号”按 ...