【发布时间】:2019-09-12 03:02:16
【问题描述】:
好的,所以我正在制作一个不和谐的机器人,我很笨。
所以如果游戏的解是:[":star:", ":star:", ":star:", ":star:"]
然后我输入 [":star:",":clubs:", ":star:", ":star:"]
我需要公共字符串数组是:[":star:",":star:",":star:"]
这是我尝试过的:
private List<String> findCommonElement(String[] a, String[] b) {
List<String> commonElements = new ArrayList<>();
for (String s1 : a) {
for (String s2 : b) {
if (s1.equals(s2)) {
commonElements.add(s1);
break;
}
}
}
return commonElements;
}
我意识到它检查每个元素的位置与其他数组位置,但我不知道。让它不嵌套?
【问题讨论】:
-
你的做法有什么问题?你的实际输出是多少?
-
解决方案:[:star:, :star:, :star:, :star:] 我的输入:[:star:, :clubs:, :clubs:, :clubs:] 相同的元素: [:star:, :star:, :star:, :star:] 无论我的输入包含多少相同的元素,它都会变为 4。
-
那么您是否尝试将
a[0]与b[0]、a[1]与b[1]、a[2]与b[2]等匹配? -
输入数组和解是否总是相同的长度?您是否还尝试比较每个索引处每个数组中的字符串(即 a[0].equals(b[0]) 和下一次迭代是 a[1].equals(b[1]);)?
-
@ScaryWombat 不,另一个例子 解决方案:[:clubs:, :hearts:, :hearts:, :star:] 我的输入:[:hearts:, :clubs:, :star:, :心:] 相同的元素:[:hearts:, :clubs:, :hearts:, :star:]。所以在这种情况下,元素位置不匹配,但字符串匹配。