预期的输出显示不正确

时间:2017-02-13 19:09:49

标签: java dictionary hashmap java.util.scanner

我正在处理与“词典和地图”相关的黑客等级问题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

1 个答案:

答案 0 :(得分:0)

我使用你的代码在hackerrank上运行它,我的所有测试用例都成功通过。我假设您在Eclipse或其他IDE上运行它时遇到此问题。由于你在while循环中有一个scan.hasNext()方法,该方法将继续无限循环,如果你耗尽所有查询,你的程序就无法知道你已完成输入所有查询。在Hackerrank上有所不同,因为他们在文件中有输入,最终有一个结束,scan.hasNext()将捕获并退出。