题目大意: http://pat.zju.edu.cn/contests/pat-a-practise/1050
思想:ascll码有128个,设置一个vector<int> ascll[128]; 用来记录S1各个字符出现在S1中的位置,标记,遍历输出即可。
1 #include<iostream> 2 #include<vector> 3 #include<string> 4 using namespace std; 5 6 int main() 7 { 8 string s1, s2; 9 while(getline(cin, s1)) 10 { 11 getline(cin, s2); 12 vector<int> mark(s1.size(), 0); 13 vector<int> ascll[128]; 14 for(int i=0; i<s1.size(); ++i) 15 ascll[(int)s1[i]].push_back(i); 16 for(int i=0; i<s2.size(); ++i) 17 if(!ascll[(int)s2[i]].empty()) 18 for(int j=0; j<ascll[(int)s2[i]].size(); ++j) 19 { 20 mark[ascll[(int)s2[i]][j]] = 1; 21 } 22 for(int i=0; i<s1.size(); ++i) 23 if(mark[i] == 0) 24 cout<<s1[i]; 25 cout<<endl; 26 } 27 return 0; 28 }