首页 > 试题广场 >

字符串操作

[编程题]字符串操作
  • 热度指数:17962 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}给定长度为 n 的只含小写字母的字符串 s,以及正整数 m 次操作。
\hspace{15pt}每次操作给定两个整数 \ell,r 和两个小写字母 c_1,c_2;将字符串 s 在区间 [\ell,r] 内的所有字符 c_1 替换为 c_2
\hspace{15pt}按顺序执行完所有操作后,输出最终的字符串。

输入描述:
\hspace{15pt}在一行输入两个整数 n,m \left(1 \leqq n,m \leqq 100\right)
\hspace{15pt}接下来一行输入一个只含小写字母的字符串 s,长度为 n
\hspace{15pt}再接下来 m 行,每行输入两个整数 \ell,r 和两个字符 c_1,c_2,用空格分隔,其中 1 \leqq \ell \leqq r \leqq nc_1,c_2 为小写字母。


输出描述:
\hspace{15pt}输出一个只含小写字母的字符串,表示执行完所有操作后的最终字符串。
示例1

输入

5 3
wxhak
3 3 h x
1 5 x a
1 3 w g

输出

gaaak

说明

\hspace{8pt}\bullet\,初始字符串为 `wxhak`; 
\hspace{8pt}\bullet\,第 1 次操作将位置 3 上的 `h` 替换为 `x`,得到 `wxxak`;
\hspace{8pt}\bullet\,第 2 次操作将位置 1 至 5 的 `x` 替换为 `a`,得到 `waaak`;
\hspace{8pt}\bullet\,第 3 次操作将位置 1 至 3 的 `w` 替换为 `g`,得到 `gaaak`。

备注:

n,m = input().split()
s = input()
data = []
for _ in range(int(m)):
    data.append(input().split())


for i in range(int(m)):
   
    start,end = int(data[i][0])-1,int(data[i][1])-1
    ori_s,new_s = data[i][2],data[i][3]
    for j in range(start,end+1):
        if s[j] == ori_s:           #这边按索引替换,不能用replace,否则会替换所有原字符串
            s = list(s)
            s[j] = new_s
            s = ''.join(s)
print(s)
发表于 2026-01-25 17:35:34 回复(0)
n, m = map(int, input().split())
s = input()
alist = [input().split() for i in range(m)]
res = [item for item in s]

for line in alist:
    for i in range(int(line[0]), int(line[1])+1):
        if res[i-1] == line[2]:
            res[i-1] = line[3]
print(''.join(res))

发表于 2022-07-17 16:12:04 回复(0)
len,numbers = map(int,input().split())
ls = list(input())
for number in range(numbers):
    n1,n2,c1,c2 = map(str,input().split())
    for i in range(int(n1)-1,int(n2)):
        if(ls[i] == c1):
            ls[i] = c2
print("".join(ls))

发表于 2022-05-25 12:57:31 回复(0)
n, m = map(int,input().split())
s = list(input())
for i in range(m):
    l,r,c1,c2 = map(str, input().split())
    l = int(l)-1
    r = int(r)-1
    for j in range(l, r+1):
        if s[j] == c1:
            s[j] = c2
print(''.join(s))

发表于 2022-04-03 22:08:40 回复(0)
n,m=map(int,input().split(' '))
a=input()
x,ss=[],[]
for i in range(m):
    s=input().split(' ')
    x.append(s)
for i in x:  
    s1,s2,s3,s4=int(i[0]),int(i[1]),i[2],i[3]
    a=a[0:s1-1]+a[s1-1:s2].replace(s3,s4)+a[s2:]
print(a)

n,m=map(int,input().split(' '))
a=input()
x,ss=[],[]
for i in range(m):
    s=input().split(' ')
    x.append(s)
for i in x:  
    s1,s2,s3,s4=int(i[0]),int(i[1]),i[2],i[3]
    a=a[0:s1-1]+a[s1-1:s2].replace(s3,s4)+a[s2:]
print(a)

发表于 2022-03-27 15:51:25 回复(0)