我正在努力解决这个问题。我见过其他涉及列表和使用递归的解决方案,但我对学习如何使用循环来解决这个问题感兴趣,我的问题是我无法打印最后一个字符,因为它等于一个空变量。你知道吗
input:abbabd
expected output:aabd
代码:
answer = input("enter a string: ")
new_answer = ""
p = ""
repeat = ""
len_answer = len(answer)
run = False
for c in answer:
if c != p and run == False:
new_answer += p
p = c
run = False
elif c == p:
p = c
run = True
elif run == True and c != p:
p = c
run = False
else:
new_answer += p
print(new_answer)
修复代码所需的只是添加一些在循环结束后运行的额外代码,并在必要时将
p
添加到结果的结尾:但是,如果结合一些条件,您可以将循环简化一点。可以非常简单:
在这个版本的循环之后,您仍然需要来自第一个代码块的行。你知道吗
最简单的方法是:
@Angel,您也可以尝试下面的代码从输入字符串
answer
中删除相邻的重复项,并返回输出字符串new_answer
。你知道吗我在函数
remove_adjacent_duplicates()
中组织了代码,以实现代码重用性,并使用注释记录了大多数行。你知道吗相关问题 更多 >
编程相关推荐