题目:
给你一个长度为N的字符串S,S由大写和小写英文字母组成。
对字符串S进行Q次修改。由两个整数和一个字符组成的元组(ti,xi,ci)表示 -th 修改(1<=i<=Q) ,如下所示。
如果是t=1,则将S的xi个字符改为ci。
如果是t=2,将s中的所有大写字母转换为小写字母(此操作忽略xi,ci)。
如果是t=3,将s中的所有小写字母转换为大写字母(此操作忽略xi,ci)。
在操作后打印。
第一行输入一个整数N,表示字符串S的长度。
第二行输入字符串S。
第三行输入一个整数Q,表示修改的次数。
接下来Q行,每行输入三个内容ti,xi,ci,ti为修改类型,xi,ci为对应的修改参数。
输出一行,包含一个字符串,为修改后的字符串。
10
HELLOWORLD
3
2 1 a
1 1 H
1 6 W
HelloWorld
14
IloveCPlusPlus
10
2 0 a
1 10 G
1 1 m
1 2 E
1 1 F
2 2 a
1 7 b
3 5 a
3 0 a
1 5 i
FEOViCBLUGPLUS
1<=N<=5∗105
S是长度为的字符串,由大写和小写英文字母组成。
1<=Q<=5∗105
1<=ti<=3(1<=i<=Q)
若ti=1,则1<=xi<=Q。
ci是大写或小写英文字母。
如果ti=1,则xi=0和ci='a'.
N,Q,ti,xi都是整数。
#include<bits/stdc++.h>
using namespace std;
string s;
int n,q,t,x;
char c;
int main(){
cin>>n>>s>>q;
for(int i=1;i<=q;i++){
cin>>t>>x>>c;
if(t==1){
s[x-1]=c;
}else if(t==2){
for(int j=1;j<=n;j++){
if(s[j]<'a') s[j]+=' ';
}
}else if(t==3){
for(int j=1;j<=n;j++){
if(s[j]>='a') s[j]-=' ';
}
}else s[0]='a';
}
cout<<s;
return 0;
}