Implement a Trie class with four operations plus a way to inspect its size:
insert(word), search(word) (exact word) and startsWith(prefix) work as usualremove(word) deletes a stored word and returns true; it returns false if the word is not stored (a word that exists only as a prefix of other words is not stored)- Removing a word must not break other words that share its prefix, and must delete the nodes that only that word needed, so that
startsWith stops matching its private prefixes nodeCount() returns the number of nodes below the root; it exists so that pruning can be checked