[R56B] 复读机

  • 难度 入门
  • 时限 1s
  • 空限 512m
  • 模拟

数据规模:1n,k501 \le n, k \le 50ss 只由小写字母组成。

思路

直接模拟:依次取出 ss 的每个字符,各重复输出 kk 次即可。输出串总长度为 n×k2500n \times k \le 2500,构造时用 StringBuilder 逐字符拼接。

复杂度:时间 O(nk)O(nk),空间 O(nk)O(nk)

仓颉实现

import std.env.*
import std.convert.*

main(): Int64 {
    let reader = getStdIn()
    let p = reader.readln().getOrThrow().split(" ", removeEmpty: true).map({ x: String => Int64.parse(x) })
    let k = p[1]
    let s = reader.readln().getOrThrow()
    let sb = StringBuilder()
    for (r in s.runes()) {
        for (i in 0..k) {
            sb.append(r)
        }
    }
    println(sb.toString())
    return 0
}