提供一种新思路
查看原帖
提供一种新思路
659574
luxiaofeng94楼主2024/1/25 15:56
  • 只用记录首字母位置
  • 左移右移可以看作首字母位置的+或-
  • 反转就看首字母位置和谁进行了对调

通过反转次数的奇偶性能知道字符串由首字母往左还是往右。

# include<bits/stdc++.h>
using namespace std;

char a[1000006],c,h,j; 
long long n,x,s,t=1,m,cnt;


int main(){ 
	cin>>a>>m;
	n=strlen(a);
	for(int i=1;i<=m;i++){
		cin>>c;
		if(c=='r'){
			cin>>h>>j;
			t=n+1-t;
			cnt++;
		}else{
			cin>>x;
			x=x%n;
			if(c=='>') t=(t+x)%n;
			else t=(t-x+n)%n;
		}
		if(t==0) t=n;
	}
	if(cnt%2==0){
		for(int i=n-t+2;i<=n;i++) cout<<a[i-1];
		for(int i=1;i<=n-t+1;i++) cout<<a[i-1];
	}else{
		for(int i=t;i>=1;i--) cout<<a[i-1];
		for(int i=n;i>=t+1;i--) cout<<a[i-1];	
	}
	
	
	return 0;
}



 
2024/1/25 15:56
加载中...