You would have done well with this kind of thinking in the mid-80s when you needed to fit code and data into maybe 16k!
As long as you were happy to rewrite it in Z80 or 6502.
Another alternative is arithmetic encoding. For instance, if you only needed to store A-Z and space, you code those as 0-26, then multiply each char by 1, 27, 272, 263 etc, the add them.
To unpack them, divide by 27 repeatedly, the remainder each time is each character. It's simply covering numbers to base-27.
It wouldn't make much difference from using 5 bits per char for a short run, though, but could be efficient for longer strings, or if encoding a smaller set of characters.
In this part of California the trucks have a robot mechanism that the drive controls, so the driver stays in the cab unless something goes wrong. I've seen them stop to dump out cardboard from the truck because it wasn't in the recycling bin.
One driver doesn't even stop, they just keep rolling as the bin gets dumped, so they often drop it blocking the neighbor's driveway.
Occasionally, all that squealing can come in handy, like the early morning hours of 16 January 1994, when the Northridge earthquake shook most of Los Angeles, prompting shortlived but very real fears that the Big One had struck.
...
Max was in bed with me and woke up minutes before it happened. And I was yelling at him for waking me up, when everything just exploded. So, I'm naked with Max, and running ... because I'm in a house on a hill, and if it's going down I want to be up on the street, dodging the next house.
The fun thing is that you can create a file named "-rf *" and hope an admin tried to delete it!