- 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