#YC386. 多次字符替换问题

多次字符替换问题

问题陈述

给定一个长度为 NN 的字符串 SS,由小写英文字母组成。

你将对字符串 SS 执行 QQ 次操作。第 ii 次操作 (1iQ)(1 \leq i \leq Q) 由一对字符 (ci,di)(c_i, d_i) 表示,对应以下操作:

  • 将字符串 SS 中所有字符 cic_i 替换为字符 did_i

在所有操作完成后,打印字符串 SS

约束条件

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • SS 是一个长度为 NN 的字符串,由小写英文字母组成。
  • 1Q2×1051 \leq Q \leq 2 \times 10^5
  • cic_idid_i 是小写英文字母 (1iQ)(1 \leq i \leq Q)
  • NNQQ 是整数。

输入

输入通过标准输入以以下格式给出:

NN

SS

QQ

c1 d1c_1\ d_1

c2 d2c_2\ d_2

\vdots

cQ dQc_Q\ d_Q

输出

在所有操作完成后,打印字符串 SS

样例

7
atcoder
4
r a
t e
d v
a r
recover

字符串替换过程解释

给定初始字符串 ​**S** 为 atcoder,经过多次字符替换操作后最终变为 recover。具体步骤如下:

1. 初始状态

  • S = atcoder
    (原始字符串)

2. 第一次操作:替换 ra

  • 操作描述:将字符串末尾的字符 r 替换为 a
    替换结果atcoderatcodea
    (仅替换最后一个字符)

3. 第二次操作:替换 te

  • 操作描述:将第三个字符 t 替换为 e
    替换结果atcodeaaecodea
    (原字符串 a t c o d e aa e c o d e a

4. 第三次操作:替换 dv

  • 操作描述:将第五个字符 d 替换为 v
    替换结果aecodeaaecovea
    (原字符串 a e c o d e aa e c o v e a

5. 第四次操作:替换所有 ar

  • 操作描述:将所有 a 替换为 r
    替换结果aecovearecover
    • 第一个字符 ar
    • 第七个字符 ar
      (原字符串 a e c o v e ar e c o v e r

最终结果

所有操作完成后,​S = recover,因此输出 recover

3
abc
4
a a
s k
n n
z b
abc
34
supercalifragilisticexpialidocious
20
g c
l g
g m
c m
r o
s e
a a
o f
f s
e t
t l
d v
p k
v h
x i
h n
n j
i r
s i
u a

laklimamriiamrmrllrmlrkramrjimrial