【发布时间】:2019-05-05 07:00:36
【问题描述】:
给定一个“初始数组”(例如[1, 2, 13]),我如何实现一种循环遍历子数组数组的方法,所有子数组的大小都与初始数组相同(例如,arr = [[2, 13, 1], [13, 1, 1], [13, 2, 2]])并找出是否至少一个子数组与初始数组中的值具有相同的值,并且这些值中的每一个在两个数组中的计数都相同?
在上面的例子中[1, 2, 13]和[2, 13, 1]都有一个1,一个2和一个13,所以应该返回true。如果arr 的第一个元素改为[2, 1, 1],则应返回false,因为arr 的任何元素的元素计数都与初始数组中的元素计数相同。
【问题讨论】:
-
你想找出数组中每个元素的所有排列吗?如果是,提示:
permutation. -
您可以对两个列表进行排序,然后检查排序后的列表是否相等。
-
jeporcher,我相信您会批准我对您问题的编辑。您接受@Kache 的回答这一事实让我相信我对这个问题的理解是正确的。
-
为避免标记,通常最好根据实际 Ruby 代码的输入和所需输出来表达您的问题。这里的歧义是如果您要比较的那些数组是生成的、派生的,还是作为输入给出的。在表达您的问题时,请尝试将其草拟为代码,例如
def find_permutations(match, *list)和一些演示调用,尽管没有实现,但会让您的意图变得清晰。 -
@tadman 感谢您的意见。从现在开始会牢记这一点。