15天大厂真题带刷 - ZT9 游游的字母翻倍 | Go

游游的字母翻倍

https://www.nowcoder.com/practice/e10ed38e315442fc9772004c58582c8f

题意

给出一个长度为n的字符串和q次询问,每次询问把区间[l,r]的字母各重复一次,插入到原字母的后面。

思路

模拟即可,每次循环都把s字符串遍历一遍,假设字符串tmp为新的字符串,先将当前字符加到tmp里,如果说当前下标在区间[l-1,r-1]里,就重复加一次。

[l-1,r-1]的原因是数组的下标从0开始

Go代码

package main

import (
    "fmt"
)

func main() {
    var n,q,l,r int 
    fmt.Scan(&n,&q)
    var s string
    fmt.Scan(&s)
    for i := 1; i <= q; i ++ {
        fmt.Scan(&l,&r)
        var tmp []byte 
        for j := 0; j < len(s); j ++ {
            tmp = append(tmp,s[j])
            if j >= l - 1 && j <= r - 1 {
                //重复
                tmp = append(tmp,s[j])
            }
        }
        s = string(tmp) 
    }
    fmt.Print(s)
}

15天大厂真题带刷Go题解 文章被收录于专栏

15天大厂真题带刷Golang题解

全部评论

相关推荐

10-17 17:54
门头沟学院 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务