1. 程式人生 > >10月20日 字符串展開

10月20日 字符串展開

color info names image using ostream con b- ==

題目

技術分享圖片

分析

枚舉‘-’號位置就好了

代碼

 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 }

10月20日 字符串展開