Python 递归删除所有相邻的重复项。I';不同的输入得到相同的输出
代码 对于不同的输入,我得到相同的输出 输入:Python 递归删除所有相邻的重复项。I';不同的输入得到相同的输出,python,python-3.x,string,data-structures,Python,Python 3.x,String,Data Structures,代码 对于不同的输入,我得到相同的输出 输入: def dup(n, s): s1 = "" list = [] k = 0 for i in range(0, n-1): if k > 0: if s[i] == s[i+1]: k = 2 k = k-1 continue if (s[i] == s[i+1]):
def dup(n, s):
s1 = ""
list = []
k = 0
for i in range(0, n-1):
if k > 0:
if s[i] == s[i+1]:
k = 2
k = k-1
continue
if (s[i] == s[i+1]):
k = 1
continue
else:
list.append(s[i])
if s[n-2] != s[n-1]:
list.append(s[n-1])
s1 = "".join(list)
n1 = len(s1)
for i in range(0, n1-1):
if s1[i] == s1[i+1]:
dup(n1, s1)
else:
print(s1)
num = int(input())
for j in range(0, num):
s = input()
n = len(s)
dup(n, s)
其正确输出为:
quhxgrhqqaccxeprunllfieilbothbbmpsg
代码的输出是:
gksforgk
**我不确定您在代码中做了什么,但如果您想以pythonical的方式来做这件事,以下是您可以在一行中做的:
quhxgrhaxeprunfieilbothmpsg
这基本上是将所有相邻的相同元素分组,如果我们有多个相同的相邻元素,我们指示不要使用它们。我迟到了35秒。;)+1请重新开始介绍教程,特别是关于“让别人更容易帮助你”的部分。我们希望有一个明确的例子——你没有提供明显不同的输入,错误地给出相同的输出。我们还希望调试清晰易读的代码;您缺少有意义的变量名,也没有对算法进行任何解释,这很可能是为什么在您的帖子中还没有人处理代码的原因。
from itertools import groupby
s = 'quhxgrhqqaccxeprunllfieilbothbbmpsg'
result = ''.join([k for k, g in groupby(s) if len(list(g)) == 1])
# quhxgrhaxeprunfieilbothmpsg