Maybe there is a way to put these in a linked list, a skip list, with information like "this has some of my characters" or "this has none of my characters"
— Then you can find words which are similar to input
— And, then follow the linked list until you get to 2 decision points: 1 being "I know there are no shared characters after this entry". and 2 being "there are no shared characters at all"
Message permanent page
— So for 5 words in the set, "Hello", "Help", and "Sunny", "Hello" would refer to "Help" as "having some shared characters". While "Sunny" would not have any references to or from it since it is 100% unique
— You can do some deduction and posit that, because input shares characters with "Hello", it may also share characters with "Help", allowing you to better direct the search
— Oh shit
— Set add: 265.634msmyset add: 3554.910msarrset add: 527.948msset has: 220.869msmyset has: 274.758msarrset has: 483.703ms
— What happened there?
— Same surface api, delete needs same overhaul as has just got
— I'm building the index array on has at the same time I'm checking if all chars exist