蓝桥杯费里的语言(Java版)

文章介绍了如何使用Java的TreeMap在创建新语言过程中检测并处理重复单词。
摘要由CSDN通过智能技术生成

小发明家弗里想创造一种新的语言,众所周知,发明一门语言是非常困难的,首先你就要克服一个困难就是,有大量的单词需要处理,现在弗里求助你帮他写一款程序,判断是否出现重复的两个单词。

输入描述
第 11 行,输入 NN,代表共计创造了多少个单词。

第 22 行至第 N+1N+1 行,输入 NN 个单词。

1\leq N \leq 10^41≤N≤10
4
,保证字符串的总输入量不超过 10^610
6

输出描述
输出仅一行。若有重复的单词,就输出重复单词,没有重复单词,就输出 NO,多个重复单词输出最先出现的。

Java里面Map定义方法:

Map m1 = new TreeMap();

这里我们讲的是排序的 map 还有不排序的 mapjava 里面叫 hashmapC++ 里叫 unordered_map,除了不排序,用法和功能都一样。

二者相差无几,大家如果不需要排序可以直接使用。

成员方法

方法名方法描述
void clear( )从此映射中移除所有映射关系(可选操作)。
boolean containsKey(Object k)如果此映射包含指定键的映射关系,则返回 true。
boolean containsValue(Object v)如果此映射将一个或多个键映射到指定值,则返回 true。
boolean equals(Object obj)比较指定的对象与此映射是否相等。
Object get(Object k)返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。
int hashCode( )返回此映射的哈希码值。
boolean isEmpty( )如果此映射未包含键-值映射关系,则返回 true。
Set keySet( )返回此映射中包含的键的 Set 视图。
Object put(Object k, Object v)将指定的值与此映射中的指定键关联
Object remove(Object k)如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。
int size( )返回此映射中的键-值映射关系数。
Collection values( )返回此映射中包含的值的 Collection 视图。

解题思路:这是一道简单题,输入一个一个单词,判断是否具有重复的单词,如果有重复的单词则直接输出重复的单词,如果没有重复的单词则输出一个字符串"NO",那么我们可以使用Java里面的Map,集合运行treemap的主键不重复的原则来进行判断是否重复,那么重复了我们可以输出重复的单词,如果循环n次都不重复的话就可以直接输出

完整代码:

 Scanner in=new Scanner(System.in);
       Map mp=new TreeMap();
       int n;
       String ans="NO",input;
       n=in.nextInt();
        for (int i = 0; i <=n; i++) {
            input=in.nextLine();
            if(mp.containsKey(input)){
                ans=input;
                break;
            }
            mp.put(input,true);
        }
        System.out.println(ans);

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值