0分,求调!!!
  • 板块题目总版
  • 楼主carlxj
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/5/19 11:38
  • 上次更新2024/5/19 14:12:49
查看原帖
0分,求调!!!
1162702
carlxj楼主2024/5/19 11:38

P1098字符串的展开

自认为思路没错
求大佬解答
#include<bits/stdc++.h>
using namespace std;
int p1,p2,p3,l,ans1,ans2;
string s;
char a,b;
int main()
{
	cin>>p1>>p2>>p3;
	getchar();
	getline(cin,s);
	l=s.size();
	for(int i=0;i<l;i++)
	{
		if(s[i]!='-')
		{
			cout<<s[i];
			continue;
		}
		if(i==0)
		{
			cout<<'-';
			continue;
		}
		if(s[i+1]=='-'||s[i-1]=='-')
		{
			cout<<'-';
			continue;
		}
		if(i==l-1)
		{
			cout<<'-';
			continue;
		}
		ans1=int(s[i-1]);
		ans2=int(s[i+1]);
		if(ans1+1==ans2) cout<<s[i+1];
		else if(ans2<=ans1) cout<<'-'<<s[i+1];
		else if((s[i-1]>='0'&&s[i+1]<='9')||(s[i-1]>='a'&&s[i+1]<='z'))
		{
			if(p3==1)
			{
				for(int i=ans1+1;i<ans2;i++)
				{
					for(int j=1;j<=p2;j++)
					{
						if(char(i)>='0'&&char(i)<='9') cout<<char(i);
						else 
						{
							if(p1==1) cout<<char(i);
							else if(p1==2) cout<<char(i-32);
							else cout<<'*';
						}
					}
				}	
			}
			else
			{
				for(int i=ans2-1;i>=ans1+1;i--)
				{
					for(int j=1;j<=p2;j++)
					{
						if(char(i)>='0'&&char(i)<='9') cout<<char(i);
						else 
						{
							if(p1==1) cout<<char(i);
							else if(p1==2) cout<<char(i-32);
							else cout<<'*';
						}
					}
				}	
			}
			cout<<s[i+1];
		}
		i++;
	}
	cout<<endl;
return 0;
}
2024/5/19 11:38
加载中...