この問題を 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に関連しています(追加のバッファーなしでこれを解決します)。
ありがとうございました!