我想在一个包含1到1000000之间的字符串数组中查找重复值。
然而,使用我现有的代码,输出结果为所有重复出现的值。
例如,如果我有[1,2,3,4,3,4]
,输出结果是3 4 3 4,而不是3 4。
下面是我的代码:
array = [gets]
if array.uniq.length == array.length
puts "array does not contain duplicates"
else
puts "array does contain duplicates"
print array.select{ |x| array.count(x) > 1}
end
另外,每次测试我的代码时,我都必须将数组定义为 array = [1,2,3,4,5,3,5]
。虽然puts
可以正常工作,但当我使用array[gets]
时无法打印。
有人能帮我解决这两个问题吗?
a.select{ |x| a.count(x) > 1}.uniq
,它会选择出现次数大于1的元素并去重。 - Vrushali Pawargets
,而不是直接给定一个任意的数组arr
吗?如果必须使用gets
,那么你只能得到一个字符串,所以你需要将其分解为单独的元素并将其转换为数组。当然,用户必须按照您的说明格式化字符串以便转换为数组。 - Cary Swoveland