網易2017春招筆試真題編程題集合(10)——小易記單詞
阿新 • • 發佈:2017-06-08
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)——小易記單詞