diff --git a/computer_networks/char_stuffing.py b/computer_networks/char_stuffing.py new file mode 100644 index 000000000000..8aad6fde3b11 --- /dev/null +++ b/computer_networks/char_stuffing.py @@ -0,0 +1,23 @@ +FLAG = '~' +ESC = '#' + + +def char_stuffing(s: str) -> str: + """ + Return the char stuffed message + >>> char_stuffing("abc") + "abc" + >>> char_stuffing("a#b#c") + "a##b##c" + """ + arr = [i for i in s] + for i in range(len(arr)): + if arr[i] == FLAG and not (i == 0 or i == len(arr) - 1): + arr[i] = ESC + arr[i] + elif arr[i] == ESC: + arr[i] += ESC + return ''.join(arr) + + +s = '~abc#~cde~ab~' +print(char_stuffing(s))