#JXGQ22011. 强哥的字母大作战

强哥的字母大作战

题目背景

强哥最近沉迷于研究字母的奥秘。他发现,如果把大小写字母看作同一类(比如 Aa 算同一种字母),那么一个字符串里不同字母的种类数会变得很有趣!

于是,强哥决定和你玩一个 字母大作战 游戏:

  1. 初始战场:给你一个由大小写字母组成的字符串 S(长度不超过 10510^5)。
  2. 操作回合:进行 qq 次操作(1q1051 \le q \le 10^5),操作有两种:
    • 侦查(query):查询某个区间 [l, r] 内不同字母的种类数(大小写不区分)。
    • 突袭(do):把某个位置的字母改成另一个字母(大小写均可)。

输入格式

  • 第一行:一个字符串 S,仅包含大小写字母,长度不超过 10510^5
  • 第二行:一个整数 q,表示操作次数。
  • 接下来 q:每行是以下两种操作之一:
    • query l r:查询区间在 [l, r] 内不同字母的种类数(大小写不区分)。
    • do a b:把 S 的第 a 个字符改成 bb 是大小写字母)。

输出格式

对于每个 query 操作,输出对应区间内不同字母的种类数。

样例输入

AbAcaBa
5
query 1 4
do 4 b
do 5 b
query 4 6
query 1 7

样例输出

3
1
2

数据范围

  • 20% 数据1len(S)1001 \le len(S) \le 1001q1001 \le q \le 100
  • 80% 数据1len(S)1051 \le len(S) \le 10^51q1051 \le q \le 10^5