考虑字符串中每个字符i需要轮转多少次,本质上就是求序列k中有多少个数 大于等于 下标 i , 这个我们可以二分或者双指针扫一下。具体细节看代码
C++
感谢群友来稿,本场评测平台是hackerrank。前面全是选择题,就只有一道编程。
给定一个长度为n的只含小写字母的字符串s , 定义一种轮换操作:k , 代表将字符串下标属于[1,k]的所有小写字母进行一次加一:a→b,b→c,...,z→a.
现在你有一个操作序列k1,k2,...,km.试问进行完所有轮换操作后的最终的字符串的结果。
第一行两个整数n,m (1≤n,m≤1e5)代表字符串长度以及轮换序列的长度
第二行为字符串s的初始状态
第三行有m个整数ki (1≤ki≤n), 代表操作序列里的每一次操作,以空格隔开。
一行字符串,代表最终结果
输入
5 3
abcde
3 5 2
输出
deeef
本题属于以下题库,请选择所需题库进行购买