python compress and decompress string solution (#309)

* compress string solution

* decompress string solution

* style fix
This commit is contained in:
Hephzi 2022-11-07 10:58:06 +04:00 committed by GitHub
parent 066a273cd2
commit 3d161adce3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 42 additions and 0 deletions

View File

@ -2,6 +2,7 @@ import random
import optparse
import os
def main():
"""Reads through README.md for question/answer pairs and adds them to a
list to randomly select from and quiz yourself.

View File

@ -0,0 +1,41 @@
## Compress String Solution
1. Write a function that gets a string and compresses it
- 'aaaabbccc' -> 'a4b2c3'
- 'abbbc' -> 'a1b3c1'
```
def compress_str(mystr: str) -> str:
result = ''
if mystr:
prevchar = mystr[0]
else:
return result
count = 1
for nextchar in mystr[1:]:
if nextchar == prevchar:
count += 1
else:
result += prevchar + str(count)
count = 1
prevchar = nextchar
result += prevchar + str(count)
return result
```
2. Write a function that decompresses a given string
- 'a4b2c3' -> 'aaaabbccc'
- 'a1b3c1' -> 'abbbc'
```
def decompress_str(mystr: str) -> str:
result = ''
for index in range(0, len(mystr), 2):
result += mystr[index] * int(mystr[index + 1])
return result
```