python-字符串操作(赛氪OJ)

[题目描述]
给定长度为 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的最中结果。


运行效果展示:

7238be1837af404cbf6512e195e4a0e3.jpg

c5b120995097467cb5087f5c621ec704.jpg 

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

 

  • 24
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要实现一个截取字符串的函数,可以借鉴引用和引用中提到的两种方法。下面是一个可能的实现: 方法一:使用substr函数(引用) 可以使用字符串的substr函数来截取字符串。substr函数有两个参数,第一个参数是起始位置,第二个参数是截取的长度。例如,如果要从字符串s的下标为2的位置开始截取到末尾,即s.substr(2),则可以得到结果"34"。如果要从字符串s的下标为0的位置开始截取长度为2的字符串,即s.substr(0,2),则可以得到结果"12"。 方法二:按字节截取字符串(引用) 为了保证汉字不被截半个,可以编写一个按字节截取的字符串函数。具体实现步骤如下: 1. 遍历字符串的每一个字符,记录当前位置的字节数,初始值为0。 2. 判断当前字符是否为中文字符。如果是,则字节数加2;如果不是,则字节数加1。 3. 判断当前位置的字节数是否超过了给定的限制。如果超过了,则截取当前位置之前的字符串,即可得到按字节截取的结果。 方法三:使用字符数组(引用) 另一种实现方式是使用字符数组来截取字符串。可以使用C语言中的strncpy函数来实现。strncpy函数有三个参数,第一个参数是目标字符数组,第二个参数是源字符串,第三个参数是截取的长度。例如,可以使用strncpy(s2, s1, n)来将字符串s1中的前n个字符赋值给s2。 根据你的需求,你可以选择其中一种方法来实现截取字符串的函数。希望以上信息对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闪云-微星

感谢大家的支持与鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值