P1098 [NOIP2007 提高组] 字符串的展开
  • 板块灌水区
  • 楼主potatoplanet720
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/9/7 19:24
  • 上次更新2023/11/2 22:26:23
查看原帖
P1098 [NOIP2007 提高组] 字符串的展开
935758
potatoplanet720楼主2023/9/7 19:24
#include<iostream>
using namespace std;
int p1,p2,p3,l=-1;
string a;
char b[10005];
void go1(int n){
	char i=tolower(a[n-1]),j=tolower(a[n+1]-1);
	if(p1==1){
		while(i<j){
			for(int m=1;m<=p2;m++) b[++l]=i;
			i++;
		}
	}else{
		while(i<j){
			for(int m=1;m<=p2;m++) b[++l]=i-32;
			i++;
		}
	}
}
void go2(int n){
	char i=tolower(a[n+1]-1),j=tolower(a[n-1]);
	if(p1==1){
		while(i>j){
			for(int m=1;m<=p2;m++) b[++l]=i;
			i--;
		}
	}else{
		while(i>j){
			for(int m=1;m<=p2;m++) b[++l]=i-32;
			i--;
		}
	}
}
void go3(int n){
	char i=tolower(a[n-1]),j=tolower(a[n+1]-1);
	while(i<j){
		for(int m=1;m<=p2;m++) b[++l]='*';
		i++;
	}
} 
int main(){
	cin>>p1>>p2>>p3;
	cin>>a;
	for(int i=0;i<a.length();i++){
		if(a[i]=='-'&&a[i-1]<a[i+1]-1&&((a[i-1]>='0'&&a[i-1]<='9'&&a[i+1]>='0'&&a[i+1]<='9')||(a[i-1]>='a'&&a[i-1]<='z'&&a[i+1]>='a'&&a[i+1]<='z')||(a[i+1]>='A'&&a[i+1]<='Z'&&a[i-1]>='A'&&a[i-1]<='Z'))){
			if(p3==1) go1(i);
			else if(p3==2) go2(i);
			else if(p1==3) go3(i);
		}else b[++l]=a[i];
	}
	cout<<b;
	return 0;
}
2023/9/7 19:24
加载中...