- in most languages strings are immutable - so if you have a 1 million character long string, and try to add just one more character, all 1 million characters need to be copied into another string - runtime is $O(n)$ - in python, to prevent this, we should follow the below format ``` def build_string(s): arr = [] for c in s: arr.append(c) return "".join(arr) ``` - append each character into an array gradually, and join everything in the end - takes $2n$ steps, so $O(n)$ - python join method takes all items in an iterable and joins them into one string - the "" before specifies what to put in between each element of the iterable, so if you had "-", there would be a dash between each letter, but in this case there is nothing