求dalao帮助

P1098 [NOIP2007 提高组] 字符串的展开

~~代码清奇~~
by aminoas @ 2019-04-18 19:24:09



by ljc_txwd @ 2019-04-18 19:27:16


~~三元运算符比这好看多了~~
by aminoas @ 2019-04-18 19:30:04


额,那大佬请问你看出为什么我第七个测试点过不了了吗,萌新求助
by ljc_txwd @ 2019-04-18 20:00:29


...看我的纯暴力代码吧 135行 ``` #include<bits/stdc++.h> using namespace std; int main() { int p1,p2,p3; string a; cin>>p1>>p2>>p3; cin>>a; for(int i=0;i<a.length();i++) { if(a[i]=='-'&&i==0) { while(a[i]=='-') { i++; cout<<"-"; } i--; continue; } if(a[i]=='-'&&a[i+1]=='-') { while(a[i]=='-') { i++; cout<<"-"; } } if(a[i]!='-') cout<<a[i]; else { if(a[i+1]<=a[i-1]||(a[i+1]>='a'&&a[i+1]<='z'&&a[i-1]>='0'&&a[i-1]<='9')||(a[i+1]>='0'&&a[i+1]<='9'&&a[i-1]>='a'&&a[i-1]<='z')) { cout<<"-"; continue; } if(p1==1) { if(p3==1) { for(int j=a[i-1];j<=a[i+1];j++) { if(j==a[i-1]) { continue; } if(j==a[i+1]) { continue; } for(int k=0;k<p2;k++) { cout<<char(j); } } } if(p3==2) { for(int j=a[i+1];j>=a[i-1];j--) { if(j==a[i-1]) { continue; } if(j==a[i+1]) { continue; } for(int k=0;k<p2;k++) { cout<<char(j); } } } } if(p1==2) { if(p3==1) { for(int j=a[i-1];j<=a[i+1];j++) { if(j==a[i-1]) { continue; } if(j==a[i+1]) { continue; } for(int k=0;k<p2;k++) { if(a[i-1]>='a'&&a[i-1]<='z') { cout<<char(j-32); } } } } if(p3==2) { for(int j=a[i+1];j>=a[i-1];j--) { if(j==a[i-1]) { continue; } if(j==a[i+1]) { continue; } for(int k=0;k<p2;k++) { if(a[i-1]>='a'&&a[i-1]<='z') { cout<<char(j-32); } else if(a[i-1]>='0'&&a[i-1]<='9') { cout<<char(j); } } } } } if(p1==3) { for(int j=a[i-1]+1;j<=a[i+1]-1;j++) { for(int k=1;k<=p2;k++) cout<<"*"; } } } } return 0; } ```
by hfee @ 2019-04-18 20:01:48


哦哦,谢谢大佬
by ljc_txwd @ 2019-04-18 20:09:23


|