我需要计算两个不同数组中每个符号的出现次数,并创建一个新的数组来保存这些出现次数。我不知道从哪里开始。
我给了3个数组以开始:
char[] symbols = {'0','1','2','3','4','5','6'};
char[] hiddenCode = {'1','2','3','4'};
char[] guess = {'1','1','4','4'};
实际说明如下:
计算hiddencode
中每个符号的数目,并分别计算猜测中每个symbol
的数目。对于每个symbol
,请确定symbol
中该hiddenCode
的数量和在symbol
中所发现的guess
的数量的最小值。命中总数(黑白)是所有symbols
的最小值的总和。
建议:
要进行计数,请创建一个长度为symbols
的整数数组。对于每个symbol
,请使用您编写的indexOf
方法来确定数组中的索引以增加符号计数。
这就是我得到的/拥有的:
public static int countAllHits(char[] hiddenCode, char[] guess, char[] symbols) {
int hits = 0;
int [] arrayCount = new int[symbols.length];
return hits;
}
我已经为此程序编写了一个indexOf
方法,该方法返回指定字符首次出现的索引:
public static int indexOf(char[] arr, char ch)
{
int index = -1;
if (arr == null || arr.length == 0) {
return index;
}
for (int i = 0; i < arr.length; ++i) {
if (arr[i] == ch) {
index = i;
break;
}
}
return index;
}
如果正确实现了我的新数组(使用开头列出的3个数组),则会存储{'2', '0', '0', '2'}
,因为第一个符号出现两次,最后一个符号出现两次。
因此,我需要编写一个方法,该方法使用上面传入的3个数组以及我的indexOf方法来计算每个符号的出现次数,并将其存储在我的新数组arrayCount中。我看过其他一些文章,它们类似于对数组中元素的出现进行计数,但是它们都使用比我上学期的计算机科学课程高得多的概念,如果我想获得全部学分,我不理解/不能将它们用于此作业。感谢您的提前回复!
有人建议我的问题是重复的,我看了另一个问题,但对我没有帮助-似乎建议使用哈希?我不知道那是什么。