2AC求助(带注释)
查看原帖
2AC求助(带注释)
1399241
GAOchang12楼主2024/7/30 13:55
#include <bits/stdc++.h>
using namespace std;
char s[1000010],t[1000010];
void rev(){//翻转
	int n=strlen(s);//s的长度
	for(int i=0;i<n;i++){
		s[i]=t[n-i-1];//前一项换成后一项
	}
	return ;
}
void right(int x){//右移
	int n=strlen(s);//s的长度
	for(int i=0,j=n-x;i<n;i++,j++){//j是右移后s[0]的位置
		if(j==n) j=0;//到头重来
		s[i]=t[j];
	}
	return ;
}
void left(int x){//左移
	int n=strlen(s);//s的长度
	for(int i=0,j=x;i<n;i++,j++){//j是左移后s[0]的位置
		if(j==n) j=0;//到头重来
		s[i]=t[j];
	}
	return ;
}
int main(){
	int n,x;
	char c;//输入的第一个字符
	string a;
	cin>>s>>n;
	for(int i=0;i<n;i++){
		strcpy(t,s);//相当于t=s;
		cin>>c;
		if(c=='r'){
			cin>>a;//ret的et
			rev();//翻转
		}
		else if(c=='>'){
			cin>>x;
			right(x);//右移
		}
		else{
			cin>>x;
			left(x);//左移
		}
	}
	cout<<s;//输出
	return 0;
}
2024/7/30 13:55
加载中...