Ind*_*ior 0 python algorithm space-complexity
如果我使用以下代码从字符串S中删除空格,是否会将其视为使用额外的空格/内存?给出'S'字符串'l'长度.
int n = l
while i < n
if S[i] == " ":
S = S[0:i] + S[i+1:]
n = len(S)
print "the new string ", S
Run Code Online (Sandbox Code Playgroud)
编辑:这只是一个示例代码.请不要评论它的复杂性和/或删除空格的正确方法:).这里的上下文是,在解决算法设计问题时,涉及一些字符串操作,使用额外空间的限制.我想知道这样的操作是否使用额外的内存/空间.
每次执行类似操作时a[b:c],Python都会创建一个新对象.所以是的,你正在使用额外的空间.我建议使用这样的replace()方法:
S.replace(" ", "")
Run Code Online (Sandbox Code Playgroud)
它会一次删除所有空格.
顺便说一句,你不会增加i你的代码并:在while语句中丢失.