MST

星途 面试题库

面试题:Ruby迭代器与块的复杂逻辑处理

给定一个复杂的哈希结构,例如{ 'group1' => [1, 2, 3], 'group2' => [4, 5, 6] },请通过迭代器和块的运用,将每个数组中的元素进行立方运算,然后返回一个新的哈希结构,其中键不变,值为处理后的数组。同时,在处理过程中,若遇到元素是3的倍数,则跳过该元素不做立方运算。请详细阐述你的解题思路并编写代码。
18.5万 热度难度
编程语言Ruby

知识考点

AI 面试

面试题答案

一键面试

解题思路

  1. 遍历给定哈希结构的每一个键值对。
  2. 对于每个值(即数组),使用迭代器遍历数组中的每一个元素。
  3. 检查每个元素是否是3的倍数,如果是则跳过,否则对其进行立方运算。
  4. 将处理后的数组作为新值,与原键组成新的键值对放入新的哈希结构中。

代码(以Ruby语言为例)

original_hash = { 'group1' => [1, 2, 3], 'group2' => [4, 5, 6] }
new_hash = {}
original_hash.each do |key, value|
  new_array = []
  value.each do |element|
    new_array << (element**3) unless element % 3 == 0
  end
  new_hash[key] = new_array
end
puts new_hash.inspect