diff --git a/scripts/random_question.py b/scripts/random_question.py index 7bf7438..8bf36fa 100644 --- a/scripts/random_question.py +++ b/scripts/random_question.py @@ -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. diff --git a/topics/python/solutions/compress_string_solution.md b/topics/python/solutions/compress_string_solution.md new file mode 100644 index 0000000..b1a137e --- /dev/null +++ b/topics/python/solutions/compress_string_solution.md @@ -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 +```