题目描述
给定一个字符串 S 和 n 次操作,每次操作为以下 3 种形式之一:
-
< x
表示将 S 向左循环移动 x 位。例如:abcde 执行 < 2
后变成 cdeab。
-
> x
表示将 S 向右循环移动 x 位。例如:abcde 执行 > 2
后变成 deabc。
-
rev
表示将 S 翻转。例如:abcde 执行 rev
后变成 edcba。
求 S 在依次执行这 n 次操作后得到的字符串 S′。
注:对于 S=s0s1⋯sk−1,将其向左循环移动 x 位,会变成 s−xS−x+1⋯S−x+k−1;向右循环移动 x 位,会变成 sxSx+1⋯Sx+k−1。对于 x≡y(modk),有 sx=sy。
输入格式
第一行一个字符串 S。
第二行一个整数 n。
接下来 n 行,每行一个操作。
输出格式
一行一个字符串 S′,表示依次执行 n 次操作后得到的字符串。
abcde
3
> 2
rev
< 2
aedcb
提示
【样例 1 解释】
- 原字符串为 abcde;
- 第一次操作后,字符串变为 deabc;
- 第二次操作后,字符串变为 cbaed;
- 第三次操作后,字符串变为 aedcb。
【数据规模与约定】
记 ∣S∣ 表示字符串 S 的长度。
测试点编号 |
特殊性质 |
1∼3 |
∣S∣,n,x≤1000 |
4 |
没有 rev 操作 |
5 |
S=aa...abb...b |
6∼10 |
无 |
对于 100% 的数据,1≤∣S∣,n≤106,0≤x≤109,S 仅由小写字母组成。