我正在尝试对列表进行分段,然后根据给定的输入值删除重复项?然而,我错过了一些东西



给定有2个输入

  1. 长度为N的字符串
  2. 满足条件的整数kN%k=0

例如:

";AABCAAADA">

3

在这种情况下,我需要将字符串划分为(9/3(3个子部分,然后我需要删除重复的

解释->你可以在这里看到演示。

我写了一个代码,它做了完全正确的事情,然而在我的输出部分的末尾,我看到";无";。我不知道那是从哪里来的。。

这是我的代码:

s = "AABCAAADA"
k = 3
def merge_the_tools(string, k):
ls = segment(string,k)
for l in ls:
print(remove_repetitive(l))
def remove_repetitive(string):
temp = list(dict.fromkeys(string))
return "".join(temp)

def segment(string,k):
ls = []
segment_len = int(len(string) / k)
x = 0
for i in range(segment_len):
ls.append(string[x:x+k])
x += k
return ls
print(merge_the_tools(s,k))

这是我的输出:

AB
CA
AD
None
k = 3
new = [s[((x+1)*3)-3:(x+1)*3] for x in range(k)]
new = list(map(set, new))
print(new)
>>> ({'B', 'A'}, {'C', 'A'}, {'D', 'A'})

这一行[((x+1)*3)-3:(x+1)*3]只获取接下来的三个项目,并将它们列出一个列表,然后将其添加到整个列表中。

这一行list(map(set, new))只是从每个列表中删除重复项。

最新更新