34 lines
787 B
Python
34 lines
787 B
Python
|
|
def compress_string(s: str) -> str:
|
|
new_s = ""
|
|
count = 0
|
|
len_new_s = 0
|
|
for i in range(len(s)):
|
|
if new_s == "":
|
|
new_s += s[i]
|
|
count +=1
|
|
len_new_s +=1
|
|
elif new_s[len_new_s-1] == s[i]:
|
|
count += 1
|
|
else:
|
|
if count != 1:
|
|
new_s += str(count)
|
|
len_new_s += 1
|
|
new_s += s[i]
|
|
count = 1
|
|
len_new_s += 1
|
|
if count != 1:
|
|
new_s += str(count)
|
|
return(new_s)
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
print(compress_string("aaabbc") + " a3b2c")
|
|
print(compress_string("abc") + " abc")
|
|
print(compress_string("aabbaa") + " a2b2a2")
|
|
print(compress_string("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbb") + " a2b2a2")
|
|
|
|
|
|
|