题目链接: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. MVC应用程序与单选列表

    原文:MVC应用程序与单选列表 前几天,Insus.NET有在MVC应用程序中,练习了<MVC应用程序,动态创建单选列表(RadioButtonList)>http://www.cnblo ...

  2. Restlet+Fastjson 高速构建轻量级 Java RESTful Webservice

    自己入门Java时做过一个小型RESTful Web Service的项目,这里总结一下. 服务的数据交换格式主要採用JSON,服务为REST风格.连接採用Http协议,数据库使用MySQL,OR M ...

  3. sar使用说明

     sar这东西,一开始还以为是内部有的,原来是外部的工具,可以到 http://pagesperso-orange.fr/sebastien.godard/download.html 去下载 1 安装 ...

  4. JavaScript模板引擎

    JavaScript模板引擎实例应用   在之前的一篇名为<移动端基于HTML模板和JSON数据的JavaScript交互>的文章中,我向大家说明了为什么要使用JavaScript模板以及 ...

  5. AIR学习教程(一)

    一.AIR的简单介绍 Adobe® AIR™ 为跨操作系统执行时,通过它能够利用现有 Web 开发技术(Adobe® Flash® CS3 Professional.Adobe® Flex™.HTML ...

  6. 水晶易表 Xcelsius 2008 安装指南 完美支持office2010(亲手体验)

    Xcelsius2008水晶易表是一款很好用的软件.网上已经有破解方法,大家能够尝试一下这款经典软件了. 可是网上对于安装破解过程介绍的不详细或者纷乱,今天我汇总了全部的方法最终成功的安装上了,而且支 ...

  7. FragmentCustomAnimation实现Fragment的界面切换

    1.知识点:FragmentCustomAnimation 2.演示样例:来自于官网演示样例的简化,这样更方便于学习该知识点. 本演示样例的源代码下载地址为:http://download.csdn. ...

  8. SWT的CheckBoxTreeView

    其实CheckBoxTreeView和TreeView基本上是一样的,他们共同的方法有: TreeViewer 类封装了tree控件.树查看器按照父子关系来显示分等级的对象列表.此查看器需要设置标签供 ...

  9. 报错compile_str() flow.php on line 375的解决方法

    flow.php line 375,flow.php  找到375行: * 保存收货人信息 */ $consignee = array( 'address_id' => empty($_POST ...

  10. Android分屏显示LogCat

    Eclipse里有非常多界面组件,文件列表.编辑区.类结构等等,在这么多界面组件里,再打开一个Logcat就基本没有什么空间了.与其挤在一起还不如分开成两个窗体. 或者你有两个屏幕,想一个屏幕编辑,一 ...