10月20日 字符串展开
题目
分析
枚举‘-’号位置就好了
代码
1 #include<iostream> 2 using namespace std; 3 int main () 4 { 5 int p1,p2,p3; 6 cin>>p1>>p2>>p3; 7 string s,c; 8 cin>>s; 9 int kk=0; 10 for (int i=0;i<s.size();i++) 11 if (s[i]=='-') 12 { 13 c+=s[i]; 14 kk=i+1; 15 } 16 else break; 17 for (int i=kk;i<s.size();i++) 18 { 19 if (s[i]!='-') 20 c+=s[i]; 21 else 22 { 23 if (s[i+1]=='-') 24 { 25 c+="--"; 26 i++; 27 continue; 28 } 29 if (s[i+1]<=s[i-1]||(s[i-1]>='0'&&s[i-1]<='9'&&s[i+1]>'9')) 30 { 31 c+='-'; 32 continue; 33 } 34 if (s[i-1]+1==s[i+1]) 35 continue; 36 int a=s[i-1],b=s[i+1]; 37 string t; 38 if (p1==1) 39 { 40 if (a>='A'&&a<='Z') 41 a=a-'A'+'a'; 42 if (b>='A'&&b<='Z') 43 b=b-'A'+'a'; 44 for(int i=a+1;i<b;i++) 45 for (int j=1;j<=p2;j++) 46 t+=i; 47 } 48 if (p1==2) 49 { 50 if (a>='a'&&a<='z') 51 a=a-'a'+'A'; 52 if (b>='a'&&b<='z') 53 b=b-'a'+'A'; 54 for(int i=a+1;i<b;i++) 55 for (int j=1;j<=p2;j++) 56 t+=i; 57 58 } 59 if (p3==2) 60 { 61 string tt; 62 for (int i=t.size()-1;i>=0;i--) 63 tt+=t[i]; 64 t=tt; 65 } 66 if (p1==3) 67 { 68 if (a>='a'&&a<='z') 69 a=a-'a'+'A'; 70 if (b>='a'&&b<='z') 71 b=b-'a'+'A'; 72 for(int i=a+1;i<b;i++) 73 for (int j=1;j<=p2;j++) 74 t+='*'; 75 } 76 c+=t; 77 } 78 } 79 cout<<c; 80 }
为何要逼自己长大,去闯不该闯的荒唐