String 给定k个单词,确定单词在恒定时间内相等

String 给定k个单词,确定单词在恒定时间内相等,string,algorithm,pattern-matching,String,Algorithm,Pattern Matching,我在学习算法测试时遇到了这个问题: 给定一组k个单词(字符串),总字符数为n(意味着所有单词长度的总和为n),在O(n)时间内对单词执行某种操作,这样每当比较两个单词时,都会在O(1)时间内返回答案(无论它们是否相同) 这是一个有趣的问题,但我找不到任何方向来处理它…构造一个包含所有单词的trie,并为每个单词存储数组中最后一个字符的索引。这是一个O(n)操作 给定两个单词,当且仅当最后一个字符的索引相同时,它们才相同。将所有单词存储在一个数组中,然后如果您希望在固定时间内完成任务,我认为您必须

我在学习算法测试时遇到了这个问题:

给定一组k个单词(字符串),总字符数为n(意味着所有单词长度的总和为n),在O(n)时间内对单词执行某种操作,这样每当比较两个单词时,都会在O(1)时间内返回答案(无论它们是否相同)


这是一个有趣的问题,但我找不到任何方向来处理它…

构造一个包含所有单词的trie,并为每个单词存储数组中最后一个字符的索引。这是一个
O(n)
操作


给定两个单词,当且仅当最后一个字符的索引相同时,它们才相同。

将所有单词存储在一个数组中,然后如果您希望在固定时间内完成任务,我认为您必须通过数组的索引指定单词。如果这是好的,那么你只需要所有单词的散列值,你就完成了。散列表会给我一个平均时间复杂度O(1),但在最坏的情况下O(n)不是很好。。。