【发布时间】:2018-10-19 05:37:23
【问题描述】:
我尝试用一个字符串数组的内容填充哈希表,然后匹配第二个数组的内容,如果它全部包含在第一个数组中。
例如
今天晚上给我一个盛大的 - String A
今天给一个盛大的 - 字符串 B
我的程序应该输出 Yes,因为字符串 B 的所有内容都包含在 A 中。
详细问题在这里:-https://www.hackerrank.com/challenges/ctci-ransom-note/problem
这是我的 Java 代码:-
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();
String magazine[] = new String[m];
for(int magazine_i=0; magazine_i < m; magazine_i++){
magazine[magazine_i] = in.next();
}
String ransom[] = new String[n];
for(int ransom_i=0; ransom_i < n; ransom_i++){
ransom[ransom_i] = in.next();
}
Hashtable<Integer,String> hm = new Hashtable<Integer,String>();
for(int magazine_i=0; magazine_i < m; magazine_i++){
hm.put(1,magazine[magazine_i]);
//System.out.println(magazine[magazine_i]);
}
boolean isavailable = false;
for(int ransom_i=0; ransom_i < n; ransom_i++){
isavailable = hm.containsValue(ransom[ransom_i]);
//System.out.println(ransom[ransom_i]+" "+isavailable);
if(isavailable==flase)
{System.out.println("No"); break;}
}
if(isavailable==true)
System.out.println("Yes");
}
}
相反,它给出了 False,我认为的问题是哈希表无法匹配数组的内容及其值。
【问题讨论】:
-
对不起,先生!我尝试反转它,它仍然给出错误的答案。我最初是按照你所说的方式写的。感谢您的通知,我已在问题中更正了这一点。
-
在下面查看我的答案
标签: java data-structures hash hashtable