2017-02-13 14 views
0

「辞書とマップ」に関するハッカーのランクの問題を解決しましたhttps://www.hackerrank.com/challenges/30-dictionaries-and-maps解決策を考え出しましたが、期待される結果が正しく表示されません。私は最後の出力を得るためにリターンキーを押す必要があります。 以下は、問題の原因となったコードです。予想される出力が正しく表示されない

import java.util.HashMap; 
import java.util.Map; 
import java.util.Scanner; 

public class Solution { 

public static void main(String[] args){ 

    int noOfQueries; 
    String key; 
    String value; 
    String searchValue; 

    Scanner scan = new Scanner(System.in); 
    Map<String, String> map = new HashMap<String, String>(); 

    noOfQueries = scan.nextInt(); 

    for (int i = 0; i < noOfQueries; i++) { 
     key = scan.next(); 
     value = scan.next(); 
     map.put(key, value); 
    } 

    while(scan.hasNext()){ 
     searchValue = scan.next(); 
     if(map.containsKey(searchValue)){ 
      System.out.println(searchValue + "=" + map.get(searchValue)); 
     }else { 
      System.out.println("Not found"); 
     } 

    } 
} 
} 

サンプル入力と出力:Refer image for sample inputs and outputs

答えて

0

私はhackerrank上でそれを実行するためにあなたのコードを使用し、すべての私のテストケースが正常に渡されました。私はあなたがこの問題をEclipseや他のIDE上で実行しているときに直面していると思います。 whileループにはscan.hasNext()メソッドがあるので、メソッドは無限にループし続けます。すべてのクエリを使い果たした場合、すべてのクエリの入力が完了したことをプログラムが知ることはできません。 Hackerrankでは、ファイルに入力があり、最終的には終了し、scan.hasNext()がそれを捕まえて終了するため、違っています。

+0

ありがとうJayesh、私はEclipse上で実行していた:) – Nimesh

関連する問題