我正在处理与“词典和地图”相关的黑客等级问题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");
}
}
}
}
答案 0 :(得分:0)
我使用你的代码在hackerrank上运行它,我的所有测试用例都成功通过。我假设您在Eclipse或其他IDE上运行它时遇到此问题。由于你在while循环中有一个scan.hasNext()
方法,该方法将继续无限循环,如果你耗尽所有查询,你的程序就无法知道你已完成输入所有查询。在Hackerrank上有所不同,因为他们在文件中有输入,最终有一个结束,scan.hasNext()
将捕获并退出。