【问题标题】:How to pass all tests in HashTable HakerRank assignment? [closed]如何通过 HashTable HackerRank 作业中的所有测试? [关闭]
【发布时间】:2017-05-16 23:07:13
【问题描述】:

我不明白为什么使用我的Hash Tables: Ransom Note HakerRank challenge 解决方案只通过了 8/17 个测试用例。

代码:

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int m = in.nextInt();
        int n = in.nextInt();
        HashMap<String, Integer> magazine = new HashMap<String, Integer>();
        for(int magazine_i=0; magazine_i < m; magazine_i++){
            String word = in.next();
            Integer wordCounter = magazine.get(word);
            if(wordCounter != null){
                magazine.put(word, ++wordCounter);
            }else{
                magazine.put(word, 1);
            }
        }
        HashMap<String, Integer> ransom = new HashMap<String, Integer>();

        for(int ransom_i=0; ransom_i < n; ransom_i++){
            String word = in.next();
            Integer wordCounter = ransom.get(word);
            if(wordCounter != null){
                ransom.put(word, ++wordCounter);
            }else{
                ransom.put(word, 1);
            }
        }
        boolean ok = true;
        breakpoint:
        for(Map.Entry<String, Integer> ransomEntry: ransom.entrySet()){
            if(magazine.get(ransomEntry.getKey()) != null){
                if(magazine.get(ransomEntry.getKey()) < ransomEntry.getValue()){
                   ok = false;
                   break breakpoint;
                }
            }else{
               ok = false;
               break breakpoint;
            }

        }
        if(ok){
            System.out.println("Yes");
        }

    }
}

【问题讨论】:

  • 好吧,首先,您的代码总是以打印 Yes 结束。
  • 现在它永远不会打印 No。你为什么不直接测试你的代码?

标签: java hashtable


【解决方案1】:

原始代码(不一定是编辑版本)的问题(据我所知)是负面结果的双重输出。如果勒索者无法做笔记,您的代码将同时打印“否”和“是”。您需要做的就是在breakpoint 标签之后添加大括号,然后在“是”打印行之后关闭它们。学习测试您的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-10
    • 2011-06-26
    • 2022-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多