展开字符串(dfs)
展开字符串
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2123 Accepted Submission(s): 1019
题解:没写出来,看了人家的修改了自己的,然而wawawa;
我的:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<map>
#include<string>
using namespace std;
const int INF=0x3f3f3f3f;
const double PI=acos(-1.0);
#define mem(x,y) memset(x,y,sizeof(x))
#define SI(x) scanf("%d",&x)
#define SL(x) scanf("%lld",&x)
#define PI(x) printf("%d",x)
#define PL(x) printf("%lld",x)
#define P_ printf(" ")
#define T_T while(T--)
typedef long long LL;
const int MAXN=250010;
char s[MAXN];
int k;
int len;
//int i;
int dfs(int x){int temp,e;for(int i=x;i<len;i++){//temp=1;if(s[i]==')')return i+1;/*if(s[i]>='0'&&s[i]<='9'){temp=s[i]-'0';i++;while(s[i]>='0'&&s[i]<='9'){temp=temp*10+s[i]-'0';i++;}}*/for(temp=0;isdigit(s[i]);i++)temp=temp*10+s[i]-'0';if(!temp) temp=1;if(s[i]=='('){while(temp--){e=dfs(i+1);}i=e;}else{while(temp--)printf("%c",s[i]);}}
}
int main(){int T;SI(T);T_T{memset(s,0,sizeof(s));scanf("%s",s);len=strlen(s);dfs(0);puts("");}return 0;
}
大神ac;
#include <iostream>
#include <cctype>
#include <cstring>
#include <string>
using namespace std;string s;
int fun(int ith)
{int k,e;char c;for(c=s[ith++];ith<s.size()&&c!=')';c=s[ith++])//递归结束的条件是字符串结束或遇到右括号 {for(k=0;isdigit(c);c=s[ith++])k=k*10+c-'0';if(!k) k=1;if(c=='('){while(k--)e=fun(ith);ith=e;//重置ith的值,到下层递归结束的位置 }else{while(k--)putchar(c);}}if(c==')') return ith;//返回本次读到结尾的位置
}
int main()
{int i,j,k,T;cin>>T;while(T--){s.clear();cin>>s;fun(0);//进入递归 cout<<endl;}return 0;
}
转载于:https://www.cnblogs.com/handsomecui/p/5087251.html
展开字符串(dfs)相关推荐
- HDOJ 1274 展开字符串
复杂的递归... 展开字符串 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T ...
- HDU1274 展开字符串【文本处理】
展开字符串 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...
- HDU-1274 展开字符串
Problem Description 在纺织CAD系统开发过程中,经常会遇到纱线排列的问题. 该问题的描述是这样的:常用纱线的品种一般不会超过25种,所以分别可以用小写字母表示不同的纱线,例如:ab ...
- c语言中dfs用pos做参数,LeetCode算法练习——深度优先搜索 DFS(2)
更多干货就在我的个人博客 BlackBlog.tech 欢迎关注! 也可以关注我的csdn博客:黑哥的博客 谢谢大家! 我们继续LeetCode之旅. 做了一段时间的LeetCode,感觉还是不错的. ...
- java字符串连接效率_关于java:字符串连接中的“+”是否会影响效率?
本问题已经有最佳答案,请猛点这里访问. 我在java中使用过String,StringBuilder和StringBuffer. 我想到了这个问题,而我从效率的角度思考. 字符串连接中的"+ ...
- [转载] python 字符串方法大全
参考链接: Python字符串| rpartition 4.7.1.字符串方法 字符串实现所有常见的序列操作,以及下面描述的其他方法. 字符串还支持两种类型的字符串格式化的,一个提供了很大程度的灵活性 ...
- 【剑指Offer】个人学习笔记_38_字符串的排列
目录 题目: [剑指 Offer 38. 字符串的排列](https://leetcode-cn.com/problems/zi-fu-chuan-de-pai-lie-lcof/) 题目分析 初始解 ...
- Python数据类型之字符串类型
Python字符串类型 单行字符串 多行字符串 字符串是数组 裁切字符串 正索引 负索引 字符串方法 获取字符串长度的len()方法 删除开头和结尾空白字符的strip()方法 只删除开头的前导符的l ...
- dfs 访问拒绝_DFS服务不能开启
Mary Dong: 您 好!感谢您的回复. 是的这是一台DC server2008 R2 有第二台DC 两台都有配置DNS并指向自己和对方,运行行命令repadmin /showrepl 第一台显示 ...
最新文章
- android 蓝牙耳机 判断,Android实现蓝牙耳机连接
- go 原子操作 atomic的使用
- PAT 1048 数字加密
- 对AI的未来以及优势的一些看法
- PHPExcel+phalcon+yii批量导入
- 浏览器显示linux桌面,如何从Web浏览器远程监视Linux服务器和桌面
- 面试问sql优化_您想了解的有关SQL Saturday的所有信息(但不敢问)
- 【PHP基础】文件操作
- Java web简单注册和登陆项目案例
- 千兆路由器什么牌子好?家用千兆路由器2018排行!
- 毕设-基于JavaWeb在线学习平台
- 学报格式和论文格式一样吗_求《浙江大学学报》的论文格式要求 - 论文投稿 - 小木虫 - 学术 科研 互动社区...
- openstreetmap数据下载大全(路网、水系、历史数据下载)
- linux启动SSH及开机自动启动
- iOS --切换控制器方式 push / modal
- 基于python的个人博客系统的设计开题报告_基于JavaSSM框架的个人博客系统设计与实现开题报告...
- 面试官:说说微信小程序的支付流程?
- 大数据告诉你中老年人上网爱干什么
- 学计算机用啥u盘好,U盘制作工具哪个好用?2020U盘制作工具推荐
- 智能驾驶功能软件平台设计规范 第二部分:感知融合功能服务接口