首页 > 代码库 > hdu 1274 展开字符串 (简单dfs)
hdu 1274 展开字符串 (简单dfs)
http://acm.hdu.edu.cn/showproblem.php?pid=1274
思路: 找到匹配的区间 之后dfs
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<cmath>using namespace std;char str[300];void dfs(int l,int r){ int i,j,k; int tl,tr,coun; for(i=l;i<=r;i++) { if(str[i]<=‘9‘&&str[i]>=‘0‘) { coun=str[i]-‘0‘; tr=tl=i+1; if(str[tl]==‘(‘) { int tcnt=1; for(j=tl+1;j<=r;j++) { if(str[j]==‘(‘) tcnt++; else if(str[j]==‘)‘) tcnt--; if(tcnt==0) {tr=j;break;} } } for(j=1;j<=coun;j++) { dfs(tl,tr); i=tr; continue; } } else if(str[i]<=‘z‘&&str[i]>=‘a‘) { printf("%c",str[i]); } }}int main(){ int n; int i,j,k; scanf("%d",&n); while(n--) { scanf("%s",str); int len=strlen(str); dfs(0,len-1); printf("\n"); } return 0;}
hdu 1274 展开字符串 (简单dfs)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。