按顺序去重

按顺序去重

💡 原文英文,约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; };

➡️

继续阅读