首页 > 试题广场 >

字符串操作

[编程题]字符串操作
  • 热度指数:7204 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 128M,其他语言256M
  • 算法知识视频讲解
给定长度为n的只有小写字母的字符串s,进行m次操作,每次将[l,r]范围内所有c1字符改成c2,输出操作完的字符串

输入描述:
第一行两个数n,m
第二行一个字符串s
之后m行,每行两个数l r两个字符c1 c2


输出描述:
输出一行一个字符串
示例1

输入

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

输出

gaaak

说明

第一次修改后为wxxak
第二次修改后为waaak
第三次修改后为gaaak

备注:
对于100%的数据,有1<=n , m<=100
package main

import (
    "fmt"
)

func main() {
    var n,m int
    fmt.Scan(&n,&m)
    bytes := make([]byte, n)
    for i:=0;i<n;i++{
        fmt.Scanf("%c", &bytes[i])
    }
    // 读掉字符串的 \n
    fmt.Scanf("\n")
    for i:=0;i<m;i++{
        var l,r int
        var c1,c2 byte
        fmt.Scanf("%d %d %c %c\n",&l,&r,&c1,&c2)
        for i:=l-1;i<=r-1;i++{
            if bytes[i] == c1 {
                bytes[i] = c2
            }
        }
    }
    for i:=0;i<n;i++{
        fmt.Printf("%c", bytes[i])
    }
}
发表于 2023-12-22 15:55:14 回复(0)