首页 > 试题广场 >

超链接

[编程题]超链接
  • 热度指数:1380 时间限制: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
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)

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)
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)

问题信息

难度:
3条回答 2260浏览

热门推荐

通过挑战的用户

查看代码