当前位置: 面试刷题>> 按照颜色对数组排序 (经典算法题500道)


**题目描述补充**: 给定一个二维数组`colors`,其中每个元素代表一个物体,物体的颜色由其内部子数组的第一个元素表示(假设颜色以字符串形式给出,如`"red"`, `"blue"`, `"green"`等),剩余元素可能包含该物体的其他属性(如大小、重量等,但本题不考虑这些属性)。要求编写一个函数,根据颜色的字典序对数组进行排序,即相同颜色的物体应该排在一起,并且颜色按照字典序从小到大排列。 **示例输入**: ```json [ ["red", 10], ["blue", 5], ["green", 8], ["red", 20], ["blue", 15] ] ``` **示例输出**: ```json [ ["blue", 5], ["blue", 15], ["green", 8], ["red", 10], ["red", 20] ] ``` **PHP代码示例**: ```php function sortColors($colors) { usort($colors, function($a, $b) { return strcmp($a[0], $b[0]); }); return $colors; } // 示例用法 $colors = [["red", 10], ["blue", 5], ["green", 8], ["red", 20], ["blue", 15]]; $sortedColors = sortColors($colors); print_r($sortedColors); ``` **Python代码示例**: ```python def sort_colors(colors): return sorted(colors, key=lambda x: x[0]) # 示例用法 colors = [["red", 10], ["blue", 5], ["green", 8], ["red", 20], ["blue", 15]] sorted_colors = sort_colors(colors) print(sorted_colors) ``` **JavaScript代码示例**: ```javascript function sortColors(colors) { return colors.sort((a, b) => a[0].localeCompare(b[0])); } // 示例用法 const colors = [["red", 10], ["blue", 5], ["green", 8], ["red", 20], ["blue", 15]]; const sortedColors = sortColors(colors); console.log(sortedColors); ``` **码小课网站提示**: 码小课网站中有更多关于算法和数据结构的相关内容,包括排序算法、数组操作、函数式编程等,欢迎大家访问学习,不断提升自己的编程能力。
推荐面试题