💡
原文英文,约400词,阅读约需2分钟。
📝
内容提要
实现函数unique_in_order,返回序列中相邻相同元素去重后的列表,保持原始顺序。示例包括字符串和数组的处理。最终代码通过判断输入类型并使用循环比较元素实现功能。
🎯
关键要点
- 实现函数unique_in_order,返回序列中相邻相同元素去重后的列表,保持原始顺序。
- 示例包括字符串和数组的处理。
- 第一次尝试使用Set,但发现不符合需求,因为不需要所有元素唯一。
- 第二次尝试使用循环比较元素,成功处理字符串,但未能处理数组。
- 最终代码通过判断输入类型并使用循环比较元素实现功能。
- 这是一个CodeWars挑战,难度为6kyu。
❓
延伸问答
如何实现相邻相同元素去重的函数?
可以通过定义函数unique_in_order,使用循环比较相邻元素来实现去重,保持原始顺序。
unique_in_order函数支持哪些输入类型?
该函数支持字符串和数组作为输入类型。
为什么第一次尝试使用Set没有成功?
因为Set会去除所有重复元素,而题目要求只去除相邻相同元素。
如何处理字符串和数组的不同情况?
通过判断输入类型,如果是字符串则先分割成数组,再进行相邻元素比较。
这个问题的难度等级是什么?
这是一个CodeWars挑战,难度为6kyu。
最终的unique_in_order函数代码是什么?
最终代码为:var uniqueInOrder = function (iterable) { let arr = typeof iterable === 'string' ? iterable.split('') : iterable; let newArr = []; for (let i = 0; i < arr.length; i++) { if (arr[i] !== arr[i + 1]) newArr.push(arr[i]); } return newArr; };
➡️