#include<bits/stdc++.h>
#define int long long
using namespace std;
string s,opt;
int n,num,x,ls;char ans[1000006];
bool flag=false;
signed main() {
cin>>s>>n;
ls=s.size();
for(int i=1;i<=n;i++){
cin>>opt;
if(opt==">"){
cin>>x;
num=(num+x%ls)%ls;
}
if(opt=="<"){
cin>>x;
num=(num-x%ls+ls)%ls;
}
if(opt=="rev"){
num=ls-num+1;
flag=!flag;
}
}
int wz=0;
if(flag){
wz=0;
for(int i=num;i>0;i--)ans[i]=s[wz],wz++;
for(int i=ls;i>num;i--)ans[i]=s[wz],wz++;
}
else {
wz=0;
for(int i=num;i<=ls;i++)ans[i]=s[wz],wz++;
for(int i=1;i<num;i++)ans[i]=s[wz],wz++;
}
for(int i=1;i<=ls;i++)cout<<ans[i];
return 0;
}
为什么上面代码会向右多走一次??