站外题(紧急求调)
  • 板块灌水区
  • 楼主bohemiao
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/12/30 20:02
  • 上次更新2023/12/30 21:00:58
查看原帖
站外题(紧急求调)
895614
bohemiao楼主2023/12/30 20:02

题目:

题目描述

给你一个长度为N的字符串S,S由大写和小写英文字母组成。

对字符串S进行Q次修改。由两个整数和一个字符组成的元组(ti,xi,ci)(ti,xi,ci)表示 -th 修改(1<=i<=Q) ,如下所示。

如果是t=1t=1,则将S的xi个字符改为ci。

如果是t=2t=2,将s中的所有大写字母转换为小写字母(此操作忽略xi,ci)。

如果是t=3t=3,将s中的所有小写字母转换为大写字母(此操作忽略xi,ci)。

在操作后打印。

输入格式

第一行输入一个整数N,表示字符串S的长度。

第二行输入字符串S。

第三行输入一个整数Q,表示修改的次数。

接下来Q行,每行输入三个内容ti,xi,ci,ti为修改类型,xi,ci为对应的修改参数。

输出格式

输出一行,包含一个字符串,为修改后的字符串。

样例

样例输入 1

10 
HELLOWORLD
3
2 1 a
1 1 H
1 6 W

样例输出 1

HelloWorld

样例输入 2

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

样例输出 2

FEOViCBLUGPLUS

数据范围与提示

1<=N<=5∗1051<=N<=5*10^5

S是长度为的字符串,由大写和小写英文字母组成。

1<=Q<=5∗1051<=Q<=5*10^5

1<=ti<=3(1<=i<=Q)1<=ti<=3(1<=i<=Q)

若ti=1,则1<=xi<=Q。

ci是大写或小写英文字母。

如果ti≠1ti \ne 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;
}

TLE14分

2023/12/30 20:02
加载中...