Какова пространственно-временная сложность этого конкретного кода - PullRequest
0 голосов
/ 08 мая 2020

Сжатие строки

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))

2-й, чтобы определить, являются ли все символы в строке уникальными или нет

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) или не? или любое другое предложение, если это не спасибо

1 Ответ

0 голосов
/ 08 мая 2020

Средняя временная сложность выборки данных из любого словаря (ha sh table) равна O (1), а наихудшая временная сложность будет O (n), что является очень редким случаем, основанным на истории контейнеров. Следовательно, это обычно рассматривается как временная сложность O (1). Остальная сложность кода очень очевидна.

Прочтите эту официальную ссылку для справки.

Учитывая это, вы можете определить сложность самостоятельно.

...