首页 > 试题广场 >

转化

[编程题]转化
  • 热度指数:1181 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}小美有一个长度为 n,仅由大小写英文字母组成的字符串 s。小美将对字符串执行以下 m 次操作:
\hspace{23pt}\bullet\,当操作类型 op=1 且给定两个小写字母 letter1,letter2(满足 letter1\leqq letter2)时,将字符串中所有位于字母表中 \texttt{[letter1,letter2]} 的小写字母转换为对应的大写字母;
\hspace{23pt}\bullet\,当操作类型 op=2 且给定两个大写字母 letter1,letter2(满足 letter1\leqq letter2)时,将字符串中所有位于字母表中 \texttt{[letter1,letter2]} 的大写字母转换为对应的小写字母。

输入描述:
\hspace{15pt}在一行上输入两个整数 n,m\ \left(1\leqq n,m\leqq 2\times10^5\right),分别表示字符串长度和操作次数; 
\hspace{15pt}在一行上输入一个长度为 n,仅由大小写英文字母组成的字符串 s
\hspace{15pt}接下来 m 行,每行输入三个元素:整数 op 和两个字符 letter1,letter2,满足:
\hspace{23pt}\bullet\,op=1,则 letter1,letter2 为小写字母,且 letter1\leqq letter2
\hspace{23pt}\bullet\,op=2,则 letter1,letter2 为大写字母,且 letter1\leqq letter2


输出描述:
\hspace{15pt}输出执行完所有操作后得到的最终字符串。
示例1

输入

3 1
abc
1 a c

输出

ABC

说明

\hspace{15pt}在此样例中,初始字符串 \texttt{,将区间 \texttt{[a,c]} 的小写字母统一转换成大写,得到 \texttt{
示例2

输入

6 2
aAbBcC
1 a b
2 B C

输出

AAbbcc

说明

\hspace{15pt}在此样例中, 
\hspace{23pt}\bullet\,第一次操作将字符串中所有满足字母表区间\texttt{[a,b]}所有小写字母的变为大写字母,得到 \texttt{
\hspace{23pt}\bullet\,第二次操作将字符串中所有满足字母表区间\texttt{[B,C]}所有大写字母的变为小写字母,最终得到 \texttt{
头像 有胆量的柯基在学习
发表于 2025-08-19 21:48:21
#include <bits/stdc++.h> using namespace std; int main() { int n, m; cin >> n >> m; string s; cin >> s; / 展开全文
头像 Silencer76
发表于 2025-08-11 20:19:48
题目链接 转化 题目描述 小美有一个长度为 ,仅由大小写英文字母组成的字符串 。她将对字符串 执行 次操作,每次操作属于以下两种类型之一: 操作类型 1: 给定两个小写字母 (),将字符串 中所有在字母表顺序上属于区间 的小写字母,转换为对应的大写字母。 操作类型 2: 给定两个大写字母 展开全文