[编程题] 小易记单词

小易参与了一个记单词的小游戏。游戏开始系统提供了m个不同的单词,小易记忆一段时间之后需要在纸上写出他记住的单词。小易一共写出了n个他能记住的单词,如果小易写出的单词是在系统提供的,将获得这个单词长度的平方的分数。注意小易写出的单词可能重复,但是对于每个正确的单词只能计分一次。
输入描述:
输入数据包括三行:

第一行为两个整数n(1 ≤ n ≤ 50)和m(1 ≤ m ≤ 50)。以空格分隔

第二行为n个字符串,表示小易能记住的单词,以空格分隔,每个单词的长度小于等于50。

第三行为m个字符串,系统提供的单词,以空格分隔,每个单词的长度小于等于50。

输出描述:
输出一个整数表示小易能获得的分数

输入例子1:
3 4
apple orange strawberry
strawberry orange grapefruit watermelon

输出例子1:
136

代码

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while(in.hasNext()) {
            int n = in.nextInt();
            int m = in.nextInt();
            Set<String> ming = new HashSet<>();
            Set<String> ans = new HashSet<>();
            for(int i=0;i<n;i++)
                ming.add(in.next());
            for(int i=0;i<m;i++)
                ans.add(in.next());
            Iterator<String> it = ming.iterator();
            int score = 0;
            while(it.hasNext()) {
                String s = it.next();
                if(ans.contains(s)) {
                    score += s.length() * s.length();
                    ans.remove(s);
                }
            }
            System.out.println(score);
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问题描述 小易参与了一个记单词的小游戏。游戏开始系统提供了m个不同的单词,小易记忆一段时间之后需要在纸上写出他记住...
    RobotBerry阅读 168评论 0 0
  • 不知道是否有很多人和我一样,从小就被爸妈潜意识灌输一种思想,要有读书,要有高学厉才能出人头地,从小这种思想就在我的...
    新颖新鲜阅读 393评论 0 1
  • 一、觉察日记-08 事件描述:昨晚对最近的工作做了全面的回顾与总结,梳理现状、问题和我需要的支持。得出结果后今天主...
    慧玲学阅读 194评论 0 0
  • 互联网金融,本质上是金融,互联网只是手段。金融是什么?资金融通,存款、贷款、证券,都是金融。 互联网金融为什么能火...
    零一间阅读 442评论 0 2
  • 穆恩下线后,叫了个DOMINO'S THREE TOPPING PIZZA.也不管会不会胖了。打开家里的全景电视,...
    阐释逐暗阅读 330评论 0 0