我想在 Python 中解决这个问题:
given a string (without spacing), remove the duplicates without using an adittional buffer.
我有以下代码:
def removedup(st):
temp = []
for i in range(len(st)):
if st[i] not in temp:
temp.append(st[i])
return temp
它返回一个没有重复的列表。
1-这个代码在 O(n^2) 对吗?
2-如何在不使用 python 中的额外缓冲区的情况下做同样的事情?(我的意思是不使用列表)。也许我可以使用字符串(不是列表),但不确定这是否会增加复杂性。另外,python 中的字符串是不可变的,所以我不能做某种类型的索引来改变一些东西。(就像在 C++ 或 Java 中一样)。
在 Python 中解决此问题的最佳方法是什么?我知道这里有一些“看起来”重复的问题,但我的问题与 Python 更相关(在没有额外缓冲区的情况下解决这个问题)。
谢谢!