#OD387. 数据单元的变化替换

数据单元的变化替换

题目解析和算法源码

华为OD机试 - 数据单元的变化替换(Java & JS & Python & C & C++)-CSDN博客

OJ用例

题解 - 数据单元的变化替换 - Hydro

题目描述

将一个 csv 格式的数据文件中包含有单元格引用的内容替换为对应单元格内容的实际值。

comma separated values(CSV) 逗号分隔值,csv 格式的数据文件使用逗号 "," 作为分隔符将各单元的内容进行分隔。

输入描述

  1. 输入只有一行数据,用逗号分隔每个单元格,行尾没有逗号。最多26个单元格,对应编号A~Z。

  2. 每个单元格的内容包含字母和数字,以及使用 '<>' 分隔的单元格引用,例如:<A>表示引用第一个单元的值。

  3. 每个单元格的内容,在替换前和替换后均不超过100个字符。

  4. 引用单元格的位置不受限制,允许排在后面的单元格被排在前面的单元格引用。

  5. 不存在循环引用的情况,比如下面这种场景是不存在的:

    A单元恪:aCd<B>8U

    B单元格:KAy<A>uZq0

  6. 不存在多重 '<>' 的情况,一个单元只能引用一个其他单元格。比如下面这种场景是不存在的:

    A单元格:aCdOu

    B单元格:kAydzco

    C单元格:y<<A><B>>d

输出描述

输出替换后的结果

用例1

输入

1,2<A>00

输出

1,2100

说明

第二个单元中有对A单元的引用,A单元格的值为1,替换时,将A单元的内容替代<A>的位置,并和其他内容合并。

用例2

输入

1<B>2,1

输出

112,1

说明

第一个单元中有对B单元的引用,B单元格的值为1,耆换时,将第二个数据第单元的内容替代<B>的位置,并和其他内容合并

用例3

输入

<B<12,1

输出

-1

说明

第一个单元中有错误的单元格引用方式,输出字符串"-1"表示错误