[Element](https://github.com/PhiNotPi/Element), <s>22</s> <s>19</s> 18 bytes
=
_'{"(3:~'![2:`];'}
Example input/output: `hello world` -> `helo wrd`
This works by simply processing the string one character at a time and keeping track which ones it has seen before.
_'{"(3:~'![2:`];'}
_ input line
' use as conditional
{ } WHILE loop
" retrieve string back from control (c-) stack
( split to get the first character of (remaining) string
3: a total of three copies of that character
~ retrieve character's hash value
' put on c-stack
! negate, gives true if undef/empty string
[ ] FOR loop
2:` duplicate and output
; store character into itself
' put remaining string on c-stack as looping condition