@zzg_zzm thanks. From the function description, the input string list don't change. So I assume it's a read only system. But as you said, if it can be changed, hopefully it won't be changed too frequently, like update daily, we can still use heap and build a new Trie every night.
I don't see a strong reason of using a hashmap, inserting into heap everytime a user type something is really inefficient.