此特定代码的时空复杂度是什么

问题描述 投票:-1回答:2

字符串压缩

def com(s):
count = {}
char = []
fianl = []
for i in s:
    if i not in count:
        count[i] = 1

    else:
        count[i] +=1
#return count
for i ,j  in count.items():
    char.append(i)
    char.append(j)
for i in char:
    fianl.append(str(i))

return "".join(fianl)


s = "AAAAABBBBCCCC"
print(com(s))

第二个步骤是查找字符串中的所有字符是否唯一

def uniq_c(s):
count = {}
for i in s:
    if i not in count:
        count[i] = 1
    else:
        count[i] +=1
#return count
for i in count.values():
    if i != 1:
        return False
return True


ar = "abcdee"
print(uniq_c(ar))

只是想知道它是否为O(n)?或任何其他建议,如果没有谢谢

python time space
2个回答
0
投票

从任何字典(哈希表)中获取数据的平均时间复杂度为O(1),最差的时间复杂度将为O(n),根据容器的历史记录,这种情况极为罕见。因此,通常将其视为O(1)时间复杂度。其余代码的复杂性非常明显。

阅读此official link以供参考。

鉴于此,您现在就可以自己推断复杂性。


-2
投票
def uniq(s):
    seen = []
    for i in s:
         if i not in seen:
                seen.append(i)
         else:
                return False
    return True
© www.soinside.com 2019 - 2024. All rights reserved.