有大佬看看这题为什么才80%吗?
#include<bits/stdc++.h>
using namespace std;
bool isAlpha(char a)
{
if(a>='a'&&a<='z')
return true;
else return false;
}
bool isNum(char a)
{
if(a>='0'&&a<='9')
return true;
else return false;
}
bool isFold(char ls,char rs)
{
if((isAlpha(ls)&&isAlpha(rs)&&ls<rs)||(isNum(ls)&&isNum(rs)&&ls<rs))
return true;
else return false;
}
void Fold(char ls,char rs,int p1,int p2,int p3)
{
if(p1==1)
{
if(p3==1)
{
for(char i=ls+1;i<rs;i++)
{
for(int j=1;j<=p2;j++)
{
cout<<i;
}
}
}
else
{
for(char i=rs-1;i>ls;i--)
{
for(int j=1;j<=p2;j++)
{
cout<<i;
}
}
}
}
if(p1==2)
{
char l,r;
if(isAlpha(ls))
{
l=ls+1-32;
r=rs-32;
}
else{
l=ls+1;
r=rs;
}
if(p3==1)
{
for(char i=l;i<r;i++)
{
for(int j=1;j<=p2;j++)
{
cout<<i;
}
}
}
else
{
for(char i=r-1;i>l;i--)
{
for(int j=1;j<=p2;j++)
{
cout<<i;
}
}
}
}
if(p1==3)
{
for(char i=ls+1;i<rs;i++)
{
for(int j=1;j<=p2;j++)
{
cout<<'*';
}
}
}
}
int main()
{
int p1,p2,p3;
cin>>p1>>p2>>p3;
string s;
cin>>s;
for(int i=0;i<s.size();i++)
{
if(i==0||i==s.size()-1){
cout<<s[i];
continue;
}
if(s[i]=='-')
{
if(isFold(s[i-1],s[i+1]))Fold(s[i-1],s[i+1],p1,p2,p3);
else cout<<s[i];
}
else cout<<s[i];
}
return 0;
}