AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P3756. 数据单元的变量替换

困难通过率 27% · 提交 395 · 通过 105
BFS拓扑排序字符串模拟

小慕在处理一份CSV格式的数据文件时,发现文件中某些单元格的内容包含了指向其他单元格的引用,例如“=A1”或“=B2”。他希望将这些引用替换为对应单元格的实际内容,从而得到一份完全解析后的数据文件。 CSV(逗号分隔值)格式的数据文件使用逗号“,”作为分隔符,将各个单元格的内容分隔开。小慕需要编写一个程序,读取CSV文件,识别所有,并替换为被引用单元格的实际值,最终输出替换后的完整CSV内容。

提示:带虚线的词点一下有通俗解释。

输入描述

1. 输入只有一行数据,用逗号分隔每个单元格,行尾没有逗号。最多26个单元格,对应编号A~Z. 2. 每个单元格的内容包含字母和数字,以及使用"<>"分隔的单元格引用,例如`<A>`表示引用第一个单元的值. 3. 每个单元格的内容,在替换前和替换后均不超过100个字符 4. 引用单元格的位置不受限制,允许排在后面的单元格被排在前面的单元格引用 5. 不存在循环引用的情况,比如下面这种场景是不存在的: ``` A单元格: aCde<B>8u B单元格: kAy<A>dzqo ``` 6. 不存在多重引用<>的情况,一个单元格只能引用一个其他单元格。比如下面这种场景是不存在的: ``` A单元格:C B单元格: kAydzqo C单元格: y<A><B>d D单元格: y<<A>>d ```

输出描述

输出所有单元格展开后的内容,单元格之间用","分隔。处理过程中出现错误时,输出字符串"-1"表示出错。

示例

示例 1

输入

1,2<A>00

输出

1,2100

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
CSV单元格引用替换示例 A: 1 B: 2 C: 2<A>00 引用A A: 1 B: 2 C: 2100 输出: 1,2,2100 若出现循环引用或格式错误,输出 -1
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「数据单元的变量替换」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。