[题目描述]
 给定长度为 n 的只有小写字母的字符串 s ,进行 m 次操作,每次将 [l,r] 范围内所有 c1 字符改成 c2 ,输出操作完的字符串。
输入格式:
 第一行两个数 n , m ,
 第二行一个字符串 s ,
 之后 m 行,每行两个数 l r 两个字符 c1 c2 。
输出格式:
 输出一行一个字符串。
样例输入
 5 3
 wxhak                                                                        3 3 h x                                                                        1 5 x a                                                                        1 3 w g
样例输出
 gaaak
数据范围
 对于 100% 的数据,保证 1≤n,m≤100 。
样例说明
 第一次修改后为wxxak,
 第二次修改后为waaak,
 第三次修改后为gaaak。
 来源/分类(难度系数:三星)
字符串 模拟 
完整代码展示:
 m,n=map(int,input().split())
 strip=list(input())
 list_1=[]
 for i in range(0,n):
       list_2=list(map(str,input().split()))
       list_1.append(list_2)
 for i in range(0,len(list_1)):
       c1=eval(list_1[i][0])-1
       c2=eval(list_1[i][1])
       list_3=strip[c1:c2]
       list_4=strip[0:c1]
       list_5=strip[c2::]
       for j in range(0,len(list_3)):
             if list_3[j]==list_1[i][2]:
                 list_3[j]=list_1[i][3]
       strip=list_4+list_3+list_5
 sum=""
 for i in range(0,len(strip)):
       sum+=strip[i]
 print(sum)
代码解释:
 “m,n=map(int,input().split())
  strip=list(input())                  ”,让用户输入字符串长度m和需要对字符串进行操作的次数n。接着让用户输入字符串并将其储存在列表strip中。
 “list_1=[]
  for i in range(0,n):
        list_2=list(map(str,input().split()))
        list_1.append(list_2)                       ”,建立一个空列表list_1,循环n次:让用户输入字符串每次操作的位置及需要替换的字符,替换字符,将其储存在列表list_2中,最后将list_2添加进列表list_1中。
 “for i in range(0,len(list_1)):
        c1=eval(list_1[i][0])-1
        c2=eval(list_1[i][1])
        list_3=strip[c1:c2]
        list_4=strip[0:c1]
        list_5=strip[c2::]
        for j in range(0,len(list_3)):
              if list_3[j]==list_1[i][2]:
                   list_3[j]=list_1[i][3]
        strip=list_4+list_3+list_5   ”,遍历list_1中元素,按照元素要求对列表strip中元素其进行操作。
 “sum=""
  for i in range(0,len(strip)):
        sum+=strip[i]
  print(sum)                           ”,建立一个空字符串sum,依次连接操作结束后列表strip中的元素。打印sum的最中结果。
运行效果展示:

 
(声明:以上内容均为原创)


















