标签:com ack image ras 自动 strong std typedef ios
AC_Code
1 #include <bits/stdc++.h> 2 #include <iostream> 3 #include <cstdio> 4 #include <cstring> 5 #include <string> 6 #include <cmath> 7 #include <queue> 8 #include <stack> 9 #include <map> 10 #include <set> 11 #include <vector> 12 using namespace std; 13 typedef long long ll; 14 string a,b; 15 set<string>S;///set自动排序去重 16 17 void del(string s){ 18 int n=s.length(); 19 if( n==1 ) return ; 20 for(int i=0;i<n;i++){///delete第i位的字符 21 string ss; 22 ss.clear(); 23 for(int j=0;j<n;j++){ 24 if( j==i ) continue; 25 ss.push_back(s[j]); 26 } 27 S.insert(ss); 28 } 29 } 30 31 void add(){ 32 int m=a.length(); 33 int n=b.length(); 34 for(int i=0;i<=n;i++){///n个字符有(n+1)个空隙 35 for(int j=0;j<m;j++){///在第i个空隙分别加a[j] 36 string ss; 37 ss.clear(); 38 for(int k=0;k<i;k++){ 39 ss.push_back(b[k]); 40 } 41 ss.push_back(a[j]); 42 for(int k=i;k<n;k++){ 43 ss.push_back(b[k]); 44 } 45 S.insert(ss); 46 } 47 } 48 } 49 50 void change() 51 { 52 int m=a.length(); 53 int n=b.length(); 54 for(int i=0;i<n;i++){///把b中的第i个字符 55 for(int j=0;j<m;j++){///换成a中的第j个字符 56 string ss; 57 ss.clear(); 58 for(int k=0;k<n;k++){ 59 if( k==i ) ss.push_back(a[j]); 60 else ss.push_back(b[k]); 61 } 62 S.insert(ss); 63 } 64 } 65 } 66 67 68 int main() 69 { 70 getline(cin,a); 71 getline(cin,b); 72 del(b); 73 add(); 74 change(); 75 S.erase(b); 76 set<string>::iterator it; 77 for(it=S.begin(); it!=S.end(); it++){ 78 cout<<(*it)<<endl; 79 } 80 return 0; 81 }
标签:com ack image ras 自动 strong std typedef ios
原文地址:https://www.cnblogs.com/wsy107316/p/12242333.html