上来一看感觉难以下手,仔细想想就是dfs啊!!!!
1 #include <cstdio> 2 #include<iostream> 3 #include<iomanip> 4 #include<cstring> 5 #include<string> 6 #include<queue> 7 #include<algorithm> 8 using namespace std; 9 int n=0; 10 char s[210][210]; 11 void dfs (int x,int y) 12 {//x为第几行,y为某一行的第几个 13 cout<<s[x][y]<<'('; 14 if(x+1<n&&s[x+1][y]=='|')//如果有子树,就向下搜 15 { 16 int kk=y; 17 while(kk-1>=0&&s[x+2][kk-1]=='-')kk--;//找到最左边 18 while(s[x+2][kk]=='-'&&s[x+3][kk]!='\0') 19 { 20 if(!isspace(s[x+3][kk])) 21 { 22 dfs(x+3,kk);//从父亲到儿子差3行 23 } 24 kk++; 25 } 26 27 } 28 cout<<')'; 29 } 30 int main() 31 { 32 int t; 33 cin>>t; 34 getchar(); 35 while(t--) 36 { 37 n=0; 38 memset(s,0,sizeof(s)); 39 while(1) 40 { 41 gets(s[n]); 42 if(s[n][0]=='#'){break;} 43 n++; 44 } 45 int l; 46 for(l=0;l<strlen(s[0]);l++){if(!isspace(s[0][l]))break;}//找到根节点 47 cout<<'('; 48 dfs(0,l); 49 cout<<')'; 50 cout<<endl; 51 52 } 53 return 0; 54 }
还是属于水题一类的吧!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律