90分求助,第九个点炸了(万分感谢)
查看原帖
90分求助,第九个点炸了(万分感谢)
197523
卞云珑楼主2021/8/26 09:19
代码可能有点丑,毕竟我是写好一个模块然后直接复制的(划掉)
#include<bits/stdc++.h>

using namespace std;
int a,b,c;
string s;
int main()
{
	cin>>a>>b>>c>>s;
	for(int i=1;i<s.length();i++)
	{
		if(s[i]=='-')
		{
			if(s[i+1]-s[i-1]>0)
			{
				if(s[i+1]>='0'&&s[i+1]<='9')
				{
					string s2;
					if(a!=3)
					{
						for(int j=s[i-1]+1;j<s[i+1];j++)
						{
							for(int k=1;k<=b;k++)
							{
								s2+=char(j);
							}
						}
					}
					else
					{
						for(int j=s[i-1]+1;j<s[i+1];j++)
						{
							for(int k=1;k<=b;k++)
							{
								s2+='*';
							}
						}
					}
					if(c==2) reverse(s2.begin(),s2.end());
					s.erase(i,1);
					s.insert(i,s2);
				}
				if(s[i-1]>='a'&&s[i-1]<='z'&&s[i+1]>='a'&&s[i+1]<='z')
				{
					string s2;
					if(a==3)
					{
						for(int j=s[i-1]+1;j<s[i+1];j++)
						{
							for(int k=1;k<=b;k++)
							{
								s2+='*';
							}
						}
					}
					if(a==1)
					{
						for(int j=s[i-1]+1;j<s[i+1];j++)
						{
							for(int k=1;k<=b;k++)
							{
								s2+=char(j);
							}
						}
					}
					if(a==2)
					{
						for(int j=s[i-1]+1-32;j<s[i+1]-32;j++)
						{
							for(int k=1;k<=b;k++)
							{
								s2+=char(j);
							}
						}
					}
					if(c==2) reverse(s2.begin(),s2.end());
					s.erase(i,1);
					s.insert(i,s2);
				}
			}
		}
	}
	cout<<s<<endl;
	return 0;
}
2021/8/26 09:19
加载中...