首页 > 试题广场 >

超链接

[编程题]超链接
  • 热度指数:1378 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
很多网页上会显示一些其他网页的超链接,如一些搜索网页会逐条列出搜索到的条目。
在一些网页中,被用户点击过的超链接会换一种颜色显示。假设某网页一开始有 n 条超链接,从上到下由 1 到 n 编号,每条超链接都显示成一个字符串,最开始所有的超链接用蓝色显示。
现在给出用户点击过哪些超链接,一条超链接只要被点击过了,就会由蓝色变成紫色,请输出最后仍为蓝色的超链接。

数据范围:

输入描述:
第一行输入一个数 n ,接下来 n 行,每行一个字符串,表示每个超链接的名称,名称只由小写字母构成,长度不超过 20,且所有名称互不相同。
接下来输入一个数 m ,表示用户点击了 m 个超链接,最后 m 行表示用户点击过的超链接名称,这 m 个超链接中可能有重复。


输出描述:
输出若干行,每行一个名称,所有仍为蓝色的超链接名称,名称的顺序按照字典序排序,如果全为紫色则不输出。
示例1

输入

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;
}

发表于 2020-09-13 00:49:40 回复(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)

发表于 2019-08-08 23:16:02 回复(0)
比较暴力,勿喷!
#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;
}

发表于 2019-06-16 16:29:51 回复(0)

Java的TreeMap和TreeSet可以实现字典序

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());
            }
        }
    }
}
发表于 2019-06-16 11:14:10 回复(0)
#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的吧。
发表于 2019-04-12 14:40:13 回复(0)
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);
        }
    }
}
发表于 2019-02-09 11:29:07 回复(0)
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)
        }
    }
}

发表于 2023-03-19 17:04:42 回复(0)
#include<iostream>
#include<string>
#include<algorithm>
#include<map>
using namespace std;

int main()
{
      int n;
     int m;
      cin>>n;
      string s;
      string l;
      map<string,int> ma;
    while(n--)
    {
        cin>>s;
        ma.insert(make_pair(s,0));
    }
      cin>>m;
    while(m--)
    {
        cin>>l;
        ma.find(l)->second++;
    }
   for(auto &i: ma){
        if(i.second == 0)
            cout<<i.first<<endl;
    }
    return 0;
}
发表于 2022-08-18 02:37:54 回复(0)
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        TreeMap<String , Boolean> map = new TreeMap<>();
        int n = sc.nextInt();
        while(n -- > 0){
            map.put(sc.next(), false);
        }
        int m = sc.nextInt();
        while(m -- > 0){
            map.put(sc.next(), true);
        }
        for(Map.Entry<String, Boolean> entry : map.entrySet()){
            if(!entry.getValue()){
                System.out.println(entry.getKey());
            }
        }
    }
}
发表于 2020-10-11 15:53:38 回复(0)
#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;
}

发表于 2020-08-18 16:24:25 回复(0)
n=int(input())
s0=[]
for i in range(n):
    s0.append(input())
m=int(input())
s1=[]
for j in range(m):
    s1.append(input())
    if s1[j] in s0:
        s0.remove(s1[j])
s0.sort()
for x in s0:
    print(x)
 
发表于 2019-04-23 11:27:36 回复(0)
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Collections;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        ArrayList<String> list1 = new ArrayList<>(n);
        for(int i = 0;i<n;i++){
            list1.add(sc.next());
        }
        int m = sc.nextInt();
        String[] str = new String[m];
        for(int i = 0;i<m;i++){
            str[i] = sc.next();
            if(list1.contains(str[i])){
                list1.remove(str[i]);
            }
        }
        Collections.sort(list1);
        for(String str1:list1){
            System.out.println(str1);
        }
    }
}
发表于 2019-04-22 17:34:05 回复(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);
    }
}

编辑于 2019-03-13 15:46:49 回复(0)
n = int(input())
a = []
for i in range(n):
    a.append(input())
m = int(input())
b = set()
for i in range(m):
    b.add(input())
ans = sorted([x for x in a if x not in b])
for x in ans:
    print(x)

发表于 2019-02-25 21:40:25 回复(0)
n=int(input(''))
ns=[]
for i in range(n):
    ns.append(input(''))
m=int(input(''))
ms=[]
for i in range(m):
    ms.append(input(''))
for i in ms:
    if i in ns:
        ns.remove(i)
ns.sort()
if len(ns)==0:
    c=0
else:
    for i in ns:
        print(i)
 
发表于 2019-01-18 21:43:59 回复(0)

问题信息

难度:
15条回答 2240浏览

热门推荐

通过挑战的用户

查看代码