哪个大佬有#9的数据啊能不能分享一下?(或者帮我看看代码也行感谢神犇)
我这里有#4#5#7的数据
2 2 2
9-a-a
9-a-a
1 5 1
-254-243-52-345-243-5234-52-345-234-52-345-234-52345-4325-2345-2345-2345
-254-2434444452345-24344444523452345-23452345-23452345-4325-2345-2345-2345
2 8 2
--09-8-w-er-7h-08w-e7-hc-r890-q7w-eh-rc98-07-q8-ewr-8h-c-8-294-5-dsf--k-h-2-48-3k-h-sd-fq-a-
--09-8-w-er-7h-08w-e7-
hcQQQQQQQQPPPPPPPPOOOOOOOONNNNNNNNMMMMMMMMLLLLLLLLKKKKKKKKJJJJJJJJIIIIIIIIHHHHHHHHGGGGGGGGFFFFFFFFEEEEEEEEDDDDDDDDr890-q7w-ehQQQQQQQQPPPPPPPPOOOOOOOONNNNNNNNMMMMMMMMLLLLLLLLKKKKKKKKJJJJJJJJIIIIIIIIrc98-07-q8-ewr-8h-c-8-2945-dsf--k-h-23333333348-3k-hRRRRRRRRQQQQQQQQPPPPPPPPOOOOOOOONNNNNNNNMMMMMMMMLLLLLLLLKKKKKKKKJJJJJJJJIIIIIIIIsdEEEEEEEEfq-a-
下面是我自己的代码(求求了帮我看看)
#include <bits/stdc++.h>
using namespace std;
int p1,p2,p3;//分别表示三种操作
//p1 = 1:填充小写字母(连续);=2:填充大写字母(连续);=3填充*(个数等于前两个)
//p2:填充时的重复次数
//p3:=1:原序 =2:逆序
/*特殊情况:如d-e时,只删除-(包括数字如3-4),如果右边的ASCLL码小于或等于
左边,则保留-并保持原样输出*/
string origin_str;//表示源字符串
string ans ;
int head_org,tail_org;
char head , tail;
void Fill()//p1
{
if(p3==1)
{
if (( (head_org>=48&&head_org<=57) && (tail_org>=48&&tail_org<=57) ))
{
for (int i=head_org+1;i<tail_org;i++)
{
for (int j=1;j<=p2;j++)
ans = ans + char(i);
}
}
else if (p1==1)//小写字母
{
for (int i=head_org+1;i<tail_org;i++)
{
for (int j=1;j<=p2;j++)
ans = ans + char(i);
}
}
else if (p1==2)//大写字母
{
for (int i=head_org+1-32;i<tail_org-32;i++)
{
for (int j=1;j<=p2;j++)
ans = ans + char(i);
}
}
else if (p1==3)//**
{
for (int i=head_org+1;i<tail_org;i++)
{
for (int j=1;j<=p2;j++)
ans = ans + "*";
}
}
}
else if (p3==2)
{
if (( (head_org>=48&&head_org<=57) && (tail_org>=48&&tail_org<=57) ))
{
for (int i=head_org+1;i<tail_org;i++)
{
for (int j=1;j<=p2;j++)
ans = ans + char(i);
}
}
else if (p1==1)//小写字母
{
for (int i=tail_org-1;i>head_org;i--)
{
for (int j=1;j<=p2;j++)
ans = ans + char(i);
}
}
else if (p1==2)//大写字母
{
for (int i=tail_org-1-32;i>head_org-32;i--)
{
for (int j=1;j<=p2;j++)
ans = ans + char(i);
}
}
else if (p1==3)//**
{
for (int i=head_org+1;i<tail_org;i++)
{
for (int j=1;j<=p2;j++)
ans = ans + "*";
}
}
}
}
int main ()
{
cin>>p1>>p2>>p3;
cin>>origin_str;
for (int i=0;i<origin_str.size();i++)
{
if (origin_str[i]=='-'&&
( (origin_str[i+1]>=65&&origin_str[i+1]<=122) || (origin_str[i+1]>=48&&origin_str[i+1]<=57) )&&
( (origin_str[i-1]>=65&&origin_str[i-1]<=122) || (origin_str[i-1]>=48&&origin_str[i-1]<=57) ))//如果找到的时候,开始Fill
{
head = origin_str[i-1];
tail = origin_str[i+1];//分别读取字符串首尾的ASCLL码
head_org = int (head);
tail_org = int (tail);
// cout<<"i = "<<i<<endl;
// cout<<"head = "<<head<<" tail = "<<tail<<endl;
// cout<<"head_org = "<<head_org<<" tail_org = "<<tail_org<<endl;
if ( head_org < tail_org )
{
if ( (tail >= 65 && head >=65) || (tail <=57 && head <=57 ) )
Fill();
else
ans = ans+origin_str[i];
}
else if ( head_org >= tail_org )
ans = ans+origin_str[i];
}
else
ans = ans+origin_str[i];
// cout<<"第"<<i<<"次循环"<<endl;
// cout<<"结果是: "<<ans<<endl;
// cout<<endl<<endl;
}
cout<<ans;
return 0;
}