90分,吐了,奇怪的问题
查看原帖
90分,吐了,奇怪的问题
215915
lOpzIth楼主2021/10/3 14:42
#include<bits/stdc++.h>
using namespace std;

int p1,p2,p3,jl,as,jia=0,fff;
string a;

string zao()
{
	//cout<<a[fff-1]<<" "<<a[fff+1]<<endl;
	
	string jie;
	if(p1==1)
	{
		jia=0;
	}
	if(p1==2)
	{
		jia=-32;
	}
	if(p1==3)
	{
		jia='*';
	}
	//cout<<jia<<endl;
	if(a[fff-1]=='-'||a[fff+1]=='-')
	return "-";
	if(a[fff-1]>='0'&&a[fff-1]<='9'&&a[fff+1]>='a'&&a[fff+1]<='z')
	return "-";
	if(a[fff-1]>=a[fff+1])
	return "-";
	if(a[fff-1]+1==a[fff+1])
	return "";
	for(int i=(int)(a[fff-1]+1);i<=(int)(a[fff+1]-1);i++)
	{
		//cout<<i<<" "; 
		for(int j=1;j<=p2;j++)
		{
			if(jia=='*')
			{
				jie=jie+"*";
			}
			else
			{
				jie=jie+(char)(i+jia);
			}
		}
	}
	//cout<<endl;
	if(p3==2)
	reverse(jie.begin(),jie.end());
	return jie;
}

int main()
{
	cin>>p1>>p2>>p3;
	cin>>a;
	while(a.find('-',jl)!=string::npos)
	{
		fff=a.find('-',jl);
		as=a.size();
		if(fff==0)
		{
			jl=fff+1;
			continue;
		}
		a=a.substr(0,fff)+zao()+a.substr(fff+1,as-fff-1);
		//cout<<a<<" "<<jl<<" "<<fff<<endl;
		jl=fff+1;
	}
	cout<<a;
	return 0;	
}

输入: 2 8 2 --09-8-w-er-7h-08w-e7-hc-r890-q7w-eh-rc98-07-q8-ewr-8h-c-8-294-5-dsf--k-h-2-48-3k-h-sd-fq-a-

正确输出: --09-8-w-er-7h-08w-e7-hcQQQQQQQQPPPPPPPPOOOOOOOONNNNNNNNMMMMMMMMLLLLLLLLKKKKKKKKJJJJJJJJIIIIIIIIHHHHHHHHGGGGGGGGFFFFFFFFEEEEEEEEDDDDDDDDr890-q7w-ehQQQQQQQQPPPPPPPPOOOOOOOONNNNNNNNMMMMMMMMLLLLLLLLKKKKKKKKJJJJJJJJIIIIIIIIrc98-07-q8-ewr-8h-c-8-2945-dsf--k-h-23333333348-3k-hRRRRRRRRQQQQQQQQPPPPPPPPOOOOOOOONNNNNNNNMMMMMMMMLLLLLLLLKKKKKKKKJJJJJJJJIIIIIIIIsdEEEEEEEEfq-a-

本人输出: --09-8-w-er-7h-08w-e7-hcQQQQQQQQPPPPPPPPOOOOOOOONNNNNNNNMMMMMMMMLLLLLLLLKKKKKKKKJJJJJJJJIIIIIIIIHHHHHHHHGGGGGGGGFFFFFFFFEEEEEEEEDDDDDDDDr890-q7w-ehQQQQQQQQPPPPPPPPOOOOOOOONNNNNNNNMMMMMMMMLLLLLLLLKKKKKKKKJJJJJJJJIIIIIIIIrc98-07-q8-ewr-8h-c-8-2945-dsf--k-h-248-3k-hRRRRRRRRQQQQQQQQPPPPPPPPOOOOOOOONNNNNNNNMMMMMMMMLLLLLLLLKKKKKKKKJJJJJJJJIIIIIIIIsdEEEEEEEEfq-a-

2021/10/3 14:42
加载中...