首页 > 试题广场 >

小明的字符串

[编程题]小明的字符串
  • 热度指数:3126 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
小明同学需要对一个长度为 N 的字符串进行处理,他需要按照要求执行若干步骤,每个步骤都均为下面 2 种操作中的一种,2 种操作如下:
TYPE 1. 从字符串结尾开始算起,将第 X 个字符之前的字符移动到字符串末尾
TYPE 2. 输出字符串索引为 X 的字符
小明尝试了很久没能完成,你可以帮他解决这个问题吗?

输入描述:
第一行,包含两个整数,字符串的长度 N 和操作次数T;
第二行为要操作的原始字符串;

之后每行都是要执行的操作类型 TYPE 和操作中 X 的值,均为整数。

输入范围:
字符串长度 N:1 <= N <= 10000
操作次数 T:1 <= T <= 10000
操作类型 TYPE:1 <= TYPE<= 2
变量 X:0 <= X < N


输出描述:
操作的执行结果
示例1

输入

6 2
xiaomi
1 2
2 0

输出

m
package main

import (
    "fmt"
    "os"
    "bufio"
)

var in=bufio.NewReader(os.Stdin)

func main() {
    var n,t int
    fmt.Fscan(in,&n,&t)
    var s string
    fmt.Fscan(in,&s)
    var a,b int
    for t>0{
        fmt.Fscan(in,&a,&b)
        if a==1{
            s=s[len(s)-b:]+s[:len(s)-b]
        }else{
            fmt.Println(string(s[b]))
        }
        t--
    }
}

发表于 2023-03-23 10:47:33 回复(0)