题目链接:HDU 1274 展开字符串

中文题。

左括号进入DFS函数,右括号return到上一层。

注意return回去的是这个一层递归中的括号中的字母串。

AC代码:

#include<stdio.h>
#include<iostream>
#include<string.h>
#include<string>
using namespace std;
char str[300];
bool vis[300];
int len;
string dfs(int pos)
{
int i,k;
int num=0;
string ans="";
string temp="",h="";
for(i=pos;i<len;i++)
{
if(!vis[i])
{
vis[i]=true;
if(str[i]>='0' && str[i]<='9')
{
num=num*10+str[i]-'0';
continue;
}
if(str[i]>='a' && str[i]<='z')
{
if(num==0)
num=1;
for(k=0;k<num;k++)
temp+=str[i];
num=0;
}
if(str[i]=='(')
{
ans+=temp;
h=dfs(i+1);
if(num==0)
num=1;
for(k=0;k<num;k++)
ans+=h;
temp="";
num=0;
}
if(str[i]==')')
{
ans+=temp;
return ans;//这一层的括号中的字母返回到上一层
}
}
}
ans+=temp;
return ans;
}
int main()
{
int t,i,j;
string out;
while(scanf("%d",&t)!=EOF)
{
while(t--)
{
memset(vis,false,sizeof vis);
scanf("%s",str);
len=strlen(str);
out=dfs(0);
cout<<out<<endl;
}
}
return 0;
} /*
100
3(ab)
1(1a2b1(ab)1c)
3(ab2(4ab))
ababa
ab3(cd)2e
3((ab))
3(3(ab))
3(3(ab)2(cd))
1a1a
1b
*/

HDU 1274 展开字符串 (递归+string类)的更多相关文章

  1. 全面深入介绍C++字符串:string类

    http://blog.csdn.net/liuliming3000/article/details/1809385 1 从C到C++ string类 2 string类的构造函数 3 string类 ...

  2. HDU 2585 [Hotel]字符串递归处理

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2585 题目大意:马克思要找个曾经去过的很好的旅馆,可惜他记不完整旅馆的名字.他有已知的部分信息和可能的 ...

  3. 数据结构和算法 – 4.字符串、 String 类和 StringBuilder 类

    4.1.String类的应用 class String类应用 { static void Main(string[] args) { string astring = "Now is The ...

  4. 字符串格式化-String类format方法

    常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象. format()方法有两种重载形式. 显示不同转换符实现不同数据类型到字符串的转换,如图所示: 测 ...

  5. Java字符串(String类)

    定义方法: 1.String demo = "test"; 2.String demo = new String(); 3.String demo = new String(&qu ...

  6. C++字符串和string类介绍

    一.C风格字符串 ◆ 1.字符串是用字符型数组存储的,字符串要求其尾部以'\0'作为结束标志.如:    char string[ ]="C++ programming language&q ...

  7. 字符串排序--string类的使用

    最近帮他们做了一个简单的c++的题目,以前做过,当时是借鉴的别人的代码,现在也忘得差不多了,不过思路还有,现在正好可以再温习一下. 题目要求如下: 先输入你要输入的字符串的个数.然后换行输入该组字符串 ...

  8. HDU——2093考试排名(string类及其函数的运用以及istringstream)

    考试排名 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  9. 【HDOJ】1274 展开字符串

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

随机推荐

  1. cocos2d-x CCNode类

    文章引用自http://blog.csdn.net/qiurisuixiang/article/details/8763260 1 CCNode是cocos2d-x中一个非常重要的类.CCNode是场 ...

  2. hdu2845(dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2845 题意:给你一个n*m的矩阵,每个位置有一定数量的豆子,如果你去map[x][y]位置上的豆子,则 ...

  3. Leetcode 细节实现 Set Matrix Zeroes

    Set Matrix Zeroes Total Accepted: 18139 Total Submissions: 58671My Submissions Given a m x n matrix, ...

  4. Knockout应用开发指南 第三章:绑定语法(3)

    原文:Knockout应用开发指南 第三章:绑定语法(3) 12   value 绑定 目的 value绑定是关联DOM元素的值到view model的属性上.主要是用在表单控件<input&g ...

  5. 对consistencygroup的一些研究和实践

    声明: 本博客欢迎转载,但请保留原作者信息! 作者:李人可 团队:华为杭州OpenStack团队 consistency group,直译是一致性组,是Juno版本号cinder新引进的一个概念.顾名 ...

  6. HDU-2647拓扑排序

    这道题不能用矩阵表示,因为1w*1w绝对超内存,分析数据,前一个a的钱要多于后一个b,所以我们要把b作为出度,a为入度,如果不明白这个地方,举例:b——>a——>c——>d ,b为8 ...

  7. Android 上实现非root的 Traceroute -- 非Root权限下移植可运行二进制文件 脚本文件

    作者 : 万境绝尘 转载请著名出处 : http://blog.csdn.net/shulianghan/article/details/36438365 演示样例代码下载 : -- CSDN : h ...

  8. SignalR技术

    Asp.net SignalR快速入门 一.前言 之前半年时间感觉自己有点浮躁,导致停顿了半年多的时间没有更新博客,今天重新开始记录博文,希望自己可以找回初心,继续沉淀.由于最近做的项目中用到Sign ...

  9. hdu 1394 Minimum Inversion Number(线段树之 单点更新求逆序数)

    Minimum Inversion Number                                                                           T ...

  10. Ubuntu在下面LAMP(Linux+Apache+MySQL+PHP) 开发环境的搭建

    LAMP在行业是一个非常流行的词.此4字母代表Linux.Apache,MySQL和PHP. LAMP其高效.灵活的特点已经成为中小企业的首选. 它已经推出了快速构建LAMP道路. 1 在Ubuntu ...