ai 给出货道批次标记 si 的上一次出现位置(不存在则为 0)。输入保证合法且不同字母不超过 26 种。
从左到右构造:
a,b,c,... 分配一个从未用过的新字母;仓库有 n 个连续货道。调度员给出数组 a,要求你只用小写英文字母给每个货道打上批次标记,得到字符串 s。规则如下:对每个位置 i(1≤i≤n),若 ai=0,则 si 必须是一个在更早货道 [1,i−1] 中从未出现过的新字母;若 ai>0,则 1≤ai<i,且 si=sai,并且对所有 ai<j<i 都有 sjesai,也就是 ai 恰好是该字母上一次出现的位置。输入保证合法,且构造所需不同字母个数不超过 26。请输出任意一个满足条件的字符串。
约束:货道数不超过 200000,且 0≤ai<i。
第一行一个整数 n,表示货道个数。 第二行 n 个整数 a1,a2,…,an。 保证 1≤n≤200000,0≤ai<i,且存在仅由小写英文字母构成的解。
输出一行长度为 n 的字符串 s。若有多个合法解,输出任意一个即可。
输入
6
0 1 0 3 2 5
输出
aabbaa
说明
从左到右:ai=‘0‘ 时依次分配新字母 a,b,否则继承 sai。得到 aabbaa。
输入
4
0 0 0 1
输出
abca
说明
三个链头各分配 a,b,c,最后一位继承位置 1 的 a,得到 abca。
输入
1
0
输出
a
说明
只有一个位置且 a1=‘0‘,输出 a。
输入
7
0 0 2 1 4 3 0
输出
abbaabc
说明
链头依次分配 a,b,再继承前驱,最后再开新字母 c,得到 abbaabc。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册