80分求助!!!!
查看原帖
80分求助!!!!
457431
Li_wenjie楼主2021/8/20 21:59
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int p1,p2,p3;
	string s,s1;
	cin>>p1>>p2>>p3;
	cin>>s;
	for(int i=0;i<s.size();i++)
	{
		if(s[i]=='-'&&(s[i-1]>='0'&&s[i-1]<='9'&&s[i+1]>='0'&&s[i+1]<='9')&&s[i+1]>s[i-1])
		{
			if(p3==1)
				for(int j=s[i-1]+1;j<s[i+1];j++)
				{
					if(p1==1)
						for(int k=1;k<=p2;k++)
							s1+=(char)j;
					else if(p1==3)
						for(int k=1;k<=p2;k++)
							s1+='*';
				}
			else
				for(int j=s[i+1]-1;j>s[i+1];j--)
				{
					if(p1==1)
						for(int k=1;k<=p2;k++)
							s1+=(char)j;
					else if(p1==3)
						for(int k=1;k<=p2;k++)
							s1+='*';
				}
			
		}
		else if(s[i]=='-'&&(s[i-1]>='a'&&s[i-1]<='z'&&s[i+1]>='a'&&s[i+1]<='z')&&s[i+1]>s[i-1])
		{
			if(p3==1)
				for(int j=s[i-1]+1;j<s[i+1];j++)
				{
					if(p1==1)
						for(int k=1;k<=p2;k++)
							s1+=(char)j;
					else if(p1==3)
						for(int k=1;k<=p2;k++)
							s1+='*';
					else if(p1==2)
						for(int k=1;k<=p2;k++)
							s1+=(char)j-32;
							
				}
			else
				for(int j=s[i+1]-1;j>s[i-1];j--)
				{
				if(p1==1)
						for(int k=1;k<=p2;k++)
							s1+=(char)j;
					else if(p1==3)
						for(int k=1;k<=p2;k++)
							s1+='*';
					else if(p1==2)
						for(int k=1;k<=p2;k++)
							s1+=(char)j-32;
				}
		}
		else 
			s1+=s[i];
	}	
	cout<<s1;
}

输入:3 8 2 0-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90;输出:0909090909090909090909090909090909090909090909090909090909090909090

2021/8/20 21:59
加载中...