#S10001. LOWER
LOWER
题目描述
给定一个长度为 的字符串 ,该字符串由大写和小写英文字母组成。
接下来将对字符串 执行 次操作。第 次操作()由一个三元组 表示,具体规则如下:
- 如果 ,则将 的第 个字符修改为 。
- 如果 ,则将 中的所有大写字母转换为小写字母(此操作中不使用 和 )。
- 如果 ,则将 中的所有小写字母转换为大写字母(此操作中不使用 和 )。
请输出执行完 次操作后的最终字符串 。
输入格式
第一行包含一个正整数 —— 字符串的长度。
第二行包含一个字符串 。
第三行包含一个正整数 —— 操作的次数。
接下来 行,每行包含两个整数 和一个字符 —— 依次表示每次操作的参数。中间用空格隔开。
输出格式
输出一行,表示执行完所有操作后的最终字符串 。
样例输入 1
7
AtCoder
5
1 4 i
3 0 a
1 5 b
2 0 a
1 4 Y
样例输出 1
atcYber
样例输入 2
35
TheQuickBrownFoxJumpsOverTheLazyDog
10
2 0 a
1 19 G
1 13 m
1 2 E
1 21 F
2 0 a
1 27 b
3 0 a
3 0 a
1 15 i
样例输出 2
TEEQUICKBROWMFiXJUGPFOVERTBELAZYDOG
说明
样例解释
在第一个样例中,初始字符串 为 AtCoder。
- 第 次操作将第 个字符修改为
i, 变为AtCider。 - 第 次操作将所有小写字母转换为大写字母, 变为
ATCIDER。 - 第 次操作将第 个字符修改为
b, 变为ATCIbER。 - 第 次操作将所有大写字母转换为小写字母, 变为
atciber。 - 第 次操作将第 个字符修改为
Y, 变为atcYber。
操作结束后,最终的字符串为 atcYber,因此输出 atcYber。
数据范围
- 对于所有测试点,保证 。
- 保证 是一个长度为 且仅由大写和小写英文字母组成的字符串。
- 对于所有测试点,保证 。
- 保证 ()。
- 如果 ,保证 (); 为大写或小写英文字母。
- 如果 ,保证 且 。
- 保证所有的 均为整数。