很多网页上会显示一些其他网页的超链接,如一些搜索网页会逐条列出搜索到的条目。
在一些网页中,被用户点击过的超链接会换一种颜色显示。假设某网页一开始有 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);
}
}