题目链接:
紫书P170
直接在二维数组上做DFS,用的fgets函数读入数据,比较gets函数安全,但是会读入 \n,在 DFS 的时候,下一个状态要 不等于空格,并且不等于 \n;
#includeusing namespace std;const int Maxn = 200+10;char buf[Maxn][Maxn];int n;void dfs(int r,int c){ printf("%c(",buf[r][c]); if(r+1 =0&&buf[r+2][i-1]=='-') i--; while(buf[r+2][i]=='-'&&buf[r+3][i]!='\0') { //if(!isspace(buf[r+3][i])) fgets会读入换行 if(buf[r+3][i]!=' '&&buf[r+3][i]!='\n') dfs(r+3,i); i++; } } printf(")");}void solve(){ n = 0; for(;;) { fgets(buf[n],Maxn,stdin); if(buf[n][0]=='#') break; else n++; } printf("("); if(n) { for(int i=0; i