题解 | 字符串操作
字符串操作
https://www.nowcoder.com/practice/06a5336b64e3481fbbcc1f7d5cba548d
import java.util.Scanner
fun main() {
val scanner = Scanner(System.`in`)
// 1. 读取 n, m
if (!scanner.hasNext()) return
val n = scanner.nextInt()
val m = scanner.nextInt()
// 2. 读取字符串并转为字符数组 (可变)
val s = scanner.next().toCharArray()
// 3. 循环处理 m 次操作
repeat(m) {
// 直接使用 next() 读取,自动跳过空白符(包括换行)
val l = scanner.nextInt() // 自动转为 Int
val r = scanner.nextInt() // 自动转为 Int
val c1Str = scanner.next() // 读取字符串
val c2Str = scanner.next() // 读取字符串
val c1 = c1Str[0] // 取第一个字符
val c2 = c2Str[0]
// 4. 执行替换逻辑
// 注意:题目区间 [l, r] 是 1-based,数组索引是 0-based,所以要减 1
for (i in (l - 1)..(r - 1)) {
if (s[i] == c1) {
s[i] = c2
}
}
}
// 5. 输出最终结果 (将字符数组转回字符串)
println(s.joinToString(""))
// 或者: println(String(s))
}
查看15道真题和解析