【发布时间】:2013-10-17 07:56:27
【问题描述】:
以下是我在一次采访中被问到的一个问题。 我们知道吃的字谜是:茶和吃 问题是: 我们有一个程序。我们向这个程序提供了一个包含 10,000 个字母的列表。 我们运行程序。 现在在运行时,我们为这个程序提供一个词,例如。 “吃” 现在程序应该返回 10,000 个字母列表中存在的字谜的数量。因此,对于“吃”的输入,它应该返回 2。
存储这 10,000 个字母的策略是什么,以便查找字谜的数量变得容易。
【问题讨论】:
-
我的放在床垫下
-
您的意思是 10000 个单词或字母?从字母 a 到 z 的英文字母只有 1 个
-
你尝试了什么?请详细说明您想到的一两个 DS,以及为什么您认为它们不够好。
-
计算每个单词的字母并将配对(数组,出现次数)存储在排序结构或哈希图中可能会更容易和更快。
-
您可以通过将 26 个英文字符中的每一个映射到一个唯一的素数来执行一个非常快速的算法。之后,您计算字符串的乘积。根据算术基本定理,当且仅当它们的乘积相同时,两个字符串才是字谜。
标签: algorithm