首页 > 试题广场 >

字符串操作

[编程题]字符串操作
  • 热度指数: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
// 引入Node.js的readline模块
const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});
// 处理输入和执行操作的函数
function processInputAndOperations(inputLines) {
  const [n, m] = inputLines[0].split(' ').map(Number);
  let s = inputLines[1];
  for (let i = 2; i < 2 + m; i++) {
    const [l, r, c1, c2] = inputLines[i].split(' ');
    const substr = s.substring(l - 1, r);
    s = s.split(substr).join(substr.split(c1).join(c2));
  }
  return s;
}
// 读取输入数据
const inputLines = [];
rl.on('line', (line) => {
  inputLines.push(line);
  if (inputLines.length === 2 + Number(inputLines[0].split(' ')[1])) {
    rl.close();
    // 处理输入数据并执行操作
    const result = processInputAndOperations(inputLines);
    console.log(result);
  }
});
发表于 2023-09-16 21:40:41 回复(0)