很多网页上会显示一些其他网页的超链接,如一些搜索网页会逐条列出搜索到的条目。
在一些网页中,被用户点击过的超链接会换一种颜色显示。假设某网页一开始有 n 条超链接,从上到下由 1 到 n 编号,每条超链接都显示成一个字符串,最开始所有的超链接用蓝色显示。
现在给出用户点击过哪些超链接,一条超链接只要被点击过了,就会由蓝色变成紫色,请输出最后仍为蓝色的超链接。
数据范围: ,
第一行输入一个数 n ,接下来 n 行,每行一个字符串,表示每个超链接的名称,名称只由小写字母构成,长度不超过 20,且所有名称互不相同。 接下来输入一个数 m ,表示用户点击了 m 个超链接,最后 m 行表示用户点击过的超链接名称,这 m 个超链接中可能有重复。
输出若干行,每行一个名称,所有仍为蓝色的超链接名称,名称的顺序按照字典序排序,如果全为紫色则不输出。
5 sina qq taobao jd baidu 3 qq baidu baidu
jd sina taobao
#include <bits/stdc++.h> using namespace std; int main(){ int n, m; scanf("%d", &n); map<string, bool> mp; string s; for(int i=0;i<n;i++){ cin>>s; mp[s] = false; } scanf("%d", &m); for(int i=0;i<m;i++){ cin>>s; mp[s] = true; } for(auto &x: mp){ if(x.second == false) cout<<x.first<<endl; } return 0; }
# 因为每个字符串都不重复,所以想到集合,但是python中set是不可变的,最终需要输出剩余字符串,不方便 # 使用list,点击超链接,删除list中的对应元素,最后输出list中剩余字符串 n = int(input()) ln = [] for i in range(n): ln.append(input()) m = int(input()) for j in range(m): t = input() if t in ln: ln.remove(t) ln = sorted(ln) # 注意按字典序排列 for e in ln: print(e)
比较暴力,勿喷! #include <bits/stdc++.h> using namespace std; int main() { int n,m,num[101]={0}; cin>>n; string a[101],b[101],res[101]; for(int i=0;i<n;i++) cin>>a[i]; cin>>m; for(int i=0;i<m;i++) cin>>b[i]; for(int i=0;i<m;i++) for(int j=0;j<n;j++) if(b[i]==a[j]) num[j]=1; int k=0; for(int i=0;i<n;i++) if(num[i]==0) res[k++]=a[i]; sort(res,res+k); for(int i=0;i<k;i++) cout<<res[i]<<endl; return 0; }
import java.util.Map; import java.util.Scanner; import java.util.TreeMap; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); TreeMap<String, Integer> map = new TreeMap<>(); int n = sc.nextInt(); while (n-- > 0) { map.put(sc.next(), 1); } int m = sc.nextInt(); while (m-- > 0) { String keys = sc.next(); if (map.containsKey(keys)) { map.put(keys, map.get(keys) + 1); } } for (Map.Entry<String, Integer> entry : map.entrySet()) { if (entry.getValue() == 1) { System.out.println(entry.getKey()); } } } }
#include<iostream> #include<set> //排序+去重 #include<string> using namespace std; int main(){ int n,m; while(cin>>n){ set<string>s; while(n--){ string a;cin>>a; s.insert(a); } cin>>m; while(m--){ string b;cin>>b; if(s.count(b)){ s.erase(b); } } set<string>::iterator it; for(it = s.begin(); it!= s.end(); it++){ cout<<*it<<endl; } } return 0; }题目比较水,看没有cpp的,贡献一个cpp的吧。
import java.math.BigInteger; import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); TreeSet<String> set = new TreeSet<>(); for (int i=0; i!=n; i++) { set.add(sc.next()); } int m = sc.nextInt(); for (int i=0; i!=m; i++) { set.remove(sc.next()); } for (String out : set) { System.out.println(out); } } }
package main import ( "fmt" "sort" ) func main() { var n int fmt.Scan(&n) cnt:=map[string]bool{} arr:=make([]string,n) for i:=0;i<n;i++{ fmt.Scan(&arr[i]) cnt[arr[i]]=true } sort.Strings(arr) fmt.Scan(&n) var s string for n>0{ fmt.Scan(&s) cnt[s]=false n-- } for _,url:=range arr{ if cnt[url]==true{ fmt.Println(url) } } }
#include <iostream> #include <vector> #include <string> #include<algorithm> using namespace std; #define maxnum 10000 int main() { vector<string> hush; int n,m; cin >> n; for ( int i = 0; i <n ; i++) { string s; cin >> s; hush.push_back(s); } cin >> m; for (int i = 0; i < m; i++) { string s; cin >> s; for (int j = 0; j < hush.size(); j++) { if (s==hush[j]) { hush.erase(hush.begin() + j); } } } sort(hush.begin(),hush.end()); for (int i = 0; i < hush.size(); i++) { cout << hush[i] << endl; } system("pause"); return 0; }
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.TreeSet; /** * @author wylu */ public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); TreeSet<String> set = new TreeSet<>(); for (int i = 0; i < n; i++) set.add(br.readLine()); int m = Integer.parseInt(br.readLine()); for (int i = 0; i < m; i++) set.remove(br.readLine()); for (String link : set) System.out.println(link); } }