1. 程式人生 > >網易2017春招筆試真題編程題集合(10)——小易記單詞

網易2017春招筆試真題編程題集合(10)——小易記單詞

bsp math 字符串 array 如果 new 是否 數據 作用

小易參與了一個記單詞的小遊戲。遊戲開始系統提供了m個不同的單詞,小易記憶一段時間之後需要在紙上寫出他記住的單詞。小易一共寫出了n個他能記住的單詞,如果小易寫出的單詞是在系統提供的,將獲得這個單詞長度的平方的分數。註意小易寫出的單詞可能重復,但是對於每個正確的單詞只能計分一次。

輸入描述:
輸入數據包括三行:
第一行為兩個整數n(1 ≤ n ≤ 50)和m(1 ≤ m ≤ 50)。以空格分隔
第二行為n個字符串,表示小易能記住的單詞,以空格分隔,每個單詞的長度小於等於50。
第三行為m個字符串,系統提供的單詞,以空格分隔,每個單詞的長度小於等於50。
輸出描述:
輸出一個整數表示小易能獲得的分數
輸入例子:
3 4
apple orange strawberry
strawberry orange grapefruit watermelon
輸出例子:
136

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){
            int n=sc.nextInt();//系統提供的單詞
            int m=sc.nextInt();//
小易記住的單詞 List<String> systemWords=new ArrayList<String>(); List<String> writeWords=new ArrayList<String>(); Set<String> writeWordsSet=new HashSet<String>();//對記住的單詞去重作用 for(int i=0;i<n;i++){ systemWords.add(sc.next()); }
for(int i=0;i<m;i++){ String str=sc.next(); if(systemWords.contains(str)){ writeWordsSet.add(str); } } writeWords.addAll(writeWordsSet); int sum=0; for(int i=0;i<writeWords.size();i++){ int len=writeWords.get(i).length(); sum+=Math.pow(len,2); } System.out.println(sum); } sc.close(); } }

結果:您的代碼已保存
請檢查是否存在數組越界等非法訪問情況
case通過率為80.00%

網易2017春招筆試真題編程題集合(10)——小易記單詞