字符串压缩
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)?或任何其他建议,如果没有谢谢
从任何字典(哈希表)中获取数据的平均时间复杂度为O(1),最差的时间复杂度将为O(n),根据容器的历史记录,这种情况极为罕见。因此,通常将其视为O(1)时间复杂度。其余代码的复杂性非常明显。
阅读此official link以供参考。
鉴于此,您现在就可以自己推断复杂性。
def uniq(s):
seen = []
for i in s:
if i not in seen:
seen.append(i)
else:
return False
return True