Codewars——Unique In Order
https://www.codewars.com/kata/54e6533c92449cc251001667/train/pythonImplement the function unique_in_order which takes as argument a sequence and returns a list of items without any elements with the same value next to each other and preserving the original order of elements.
For example:
unique_in_order('AAAABBBCCDAABBB') == ['A', 'B', 'C', 'D', 'A', 'B']
unique_in_order('ABBCcAD') == ['A', 'B', 'C', 'c', 'A', 'D']
unique_in_order() ==
unique_in_order((1, 2, 2, 3, 3)) ==
def unique_in_order(sequence):
seq2 = []
for item in sequence:
if item not in seq2:
seq2.append(item)
return seq2
???我的思路没错啊,如果没重复的话就append 标题:Codewars——Unique In Order
内容:
你的思路部分是对的,但你的实现只是简单地过滤掉了所有的重复项,而不是只过滤掉相邻的重复项。所以,你需要稍微调整你的代码以满足这个条件。下面是一个可能的解决方案:
def unique_in_order(iterable):
if len(iterable) == 0:
return []
res = ]
for item in iterable:
if item != res[-1]:
res.append(item)
return res
让我们详细地解释一下这个解决方案。
首先,我们检查输入的迭代器是否为空。如果为空,那么我们直接返回一个空列表。
然后,我们创建一个列表res ,并将iterable的第一个元素放入列表中。这是因为我们知道第一个元素总是唯一的。
接下来,我们遍历iterable中的其余元素。对于每个元素,我们检查它是否与res的最后一个元素相同。如果不同,那么我们就将其添加到res中。这就保证了我们只添加了那些不与前一个元素重复的元素。
最后,我们返回res ,它是一个包含了iterable中所有非重复元素的列表。
这样,我们就实现了一个满足题目要求的unique_in_order函数。
希望这个解释对你有所帮助!如果你还有其他的问题,欢迎随时向我提问。 isdkz 发表于 2023-7-18 22:38
标题:Codewars——Unique In Order
内容:
谢,下次直接问GPT
def unique_in_order(sequence):
seq2 = []
last = None
for item in sequence:
if item != last:
seq2.append(item)
last = item
return seq2 Threebody1 发表于 2023-7-18 22:39
谢,下次直接问GPT
{:10_256:}
页:
[1]