当前位置: 面试刷题>> 螺母(Nuts)和螺栓(Bolts)的问题 (经典算法题500道)


### 题目描述补充 **题目:螺母(Nuts)和螺栓(Bolts)的匹配问题** 给定两个数组,一个代表螺母(`nuts`)的数组,另一个代表螺栓(`bolts`)的数组。每个螺母和螺栓都有一个对应的尺寸(整数表示)。我们需要找出能够完全匹配(即尺寸相同)的螺母和螺栓的对数。注意,一个螺母只能与一个螺栓匹配,反之亦然。 **示例输入**: - 螺母数组:`[1, 2, 3, 4, 5]` - 螺栓数组:`[2, 4, 5, 6, 7]` **示例输出**: - 匹配的对数:3(因为尺寸为2、4、5的螺母和螺栓各有一对可以匹配) ### PHP 示例代码 ```php function matchNutsAndBolts($nuts, $bolts) { $nutCount = count($nuts); $boltCount = count($bolts); $matches = 0; // 使用关联数组记录螺栓的数量,方便快速查找 $boltCounts = array_count_values($bolts); foreach ($nuts as $nut) { if (isset($boltCounts[$nut])) { $matches++; unset($boltCounts[$nut]); // 匹配后从记录中移除,避免重复计数 } } return $matches; } // 示例 $nuts = [1, 2, 3, 4, 5]; $bolts = [2, 4, 5, 6, 7]; echo matchNutsAndBolts($nuts, $bolts); // 输出: 3 ``` ### Python 示例代码 ```python def match_nuts_and_bolts(nuts, bolts): bolt_set = set(bolts) matches = 0 for nut in nuts: if nut in bolt_set: matches += 1 bolt_set.remove(nut) # 移除已匹配的螺栓,避免重复计数 return matches # 示例 nuts = [1, 2, 3, 4, 5] bolts = [2, 4, 5, 6, 7] print(match_nuts_and_bolts(nuts, bolts)) # 输出: 3 ``` ### JavaScript 示例代码 ```javascript function matchNutsAndBolts(nuts, bolts) { let boltSet = new Set(bolts); let matches = 0; for (let nut of nuts) { if (boltSet.has(nut)) { matches++; boltSet.delete(nut); // 移除已匹配的螺栓 } } return matches; } // 示例 const nuts = [1, 2, 3, 4, 5]; const bolts = [2, 4, 5, 6, 7]; console.log(matchNutsAndBolts(nuts, bolts)); // 输出: 3 ``` **码小课网站中有更多相关内容分享给大家学习**,涵盖了各种算法和数据结构的深入解析,帮助大家提升编程技能。
推荐面试题