90分未过测试点7,求调(必关)
查看原帖
90分未过测试点7,求调(必关)
1786396
Millerfish楼主2025/7/23 15:15

代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int p1,p2,p3;
	string s;
	cin>>p1>>p2>>p3;
	cin>>s; 
	for (int i=0;i<s.size();i++)
	{
		if ((s[i+1]=='-' && s[i+2]>s[i]) && (s[i+2]<='9' || s[i]>='a'))
		{
			char left=s[i],right=s[i+2];
			s.erase(s.begin() + i+1);
			if (p3==1)
			{
			    for (char j=s[i+1]-1;j>=s[i]+1;j--)
				{
					if (p1==1 || (p1==2 && right<='9'))s.insert(i+1,p2,j);
					else if(p1==2 && left>='a')s.insert(i+1,p2,j-32);
					else if(p1==3)s.insert(i+1,p2,'*');
				}				
			}
			else if(p3==2)
			{
				char start=s[i]+1;
				char end=s[i+1]-1;
				for (char j=start;j<=end;j++)
				{
					if (p1==1 || (p1==2 && right<='9'))s.insert(i+1,p2,j);
					else if(p1==2 && left>='a')s.insert(i+1,p2,j-32);
					else if(p1==3)s.insert(i+1,p2,'*');
				}
			}

		}
	}
	cout<<s;
} 
2025/7/23 15:15
加载中...