PAT 1050

题目大意: 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 }
原文地址:https://www.cnblogs.com/bochen-sam/p/3386454.html