首页 > 代码库 > 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;}
View Code

 

hdu 1274 展开字符串 (简单dfs)