当前位置: 首页 > 面试题库 >

查找给定单词的字谜

谭炎彬
2023-03-14
问题内容

如果两个单词中的一个具有与另一个单词完全相同的字符,则它们是字谜。

范例:AnagramNagaram是字谜(不区分大小写)。

现在有很多与此类似的问题。查找两个字符串是否为字谜的两种方法是:

1) Sort将字符串进行比较。

2)frequency map为这些字符串创建一个,然后检查它们是否相同。

但是在这种情况下,我们得到一个单词(为简单起见,我们仅假设一个单词,并且只包含单个单词的字谜),我们需要为此找到一个字谜。

我想到的解决方案是,我们可以 生成 该单词的 所有排列 并检查 字典中是否存在 这些单词
。但显然,这是非常低效的。是的,该词典也可用。

那么,我们在这里有什么选择呢?

我也在类似的线程中读到可以使用某些东西来完成工作,Tries但是该人员没有解释算法是什么以及为什么我们首先使用Trie,只是在Python或Ruby中提供了一个实现。所以那并没有真正的帮助,这就是为什么我创建了这个新线程。如果有人要共享其实现(C,C
++或Java除外),请也进行解释。


问题答案:

示例算法:

Open dictionary
Create empty hashmap H
For each word in dictionary:
  Create a key that is the word's letters sorted alphabetically (and forced to one case)
  Add the word to the list of words accessed by the hash key in H

要检查给定单词的所有字谜:

Create a key that is the letters of the word, sorted (and forced to one case)
Look up that key in H
You now have a list of all anagrams

建立起来比较快,查找起来非常快。



 类似资料:
  • 这是我的浏览方法。我正在尝试通过“dictionaryEntry”对象的哈希图进行搜索,只查看条目的“word”部分。(b.word)。这个想法是您可以搜索整个字典并返回所有以给定方法的字符串开头的单词。例如,您可以返回所有以字符串“sto”开头的单词。我的想法是遍历哈希图,如果单词的子字符串,从位置零开始并以输入字符串的长度结束,它将被添加到数组列表中。然后将返回数组列表。

  • 给定两个文件会产生一个算法/程序来查找文件1中的单词,而不是文件2中的单词。请注意,文件中的单词不是按顺序排列的。 这是我的思考过程: 步骤1:读取文件2的单词并将其添加到哈希集 如果两个文件中的字数都只有100或1000个,那么这个算法就可以正常工作 但是,如果两个文件都很大(数十亿字),那么此解决方案将无法工作,因此我提出了一个改进的解决方案: 步骤1:逐字阅读文件2,并按字母顺序对单词进行排

  • https://techdevguide.withgoogle.com/paths/foundational/find-longth-word-in-dictionary-that-subsecence-of-givised-string#代码-挑战 “给定一个字符串S和一组单词D,找出D中最长的单词,它是S的子序列。如果可以从S中删除一些字符(可能为零)以形成W,而不对其余字符重新排序,则W是S

  • 我试图写一个方法来检查一个给定的单词是否是回文,但到现在为止它还不能工作。我怀疑错误出在if语句中,而且您没有将对象(如字符串)与==进行比较,而是与equals进行比较,对吗?但是Java不允许我写:if(firstthalf.charat(i).equals(secondhalf.charat(j))),那么我该怎么做才能使它工作呢?代码中还有其他错误吗? null null 提前道谢! /尼

  • 我有一个包含50000个单词的单词列表,还有一个逐行查找字母字符的txt文件。我试图通过按顺序阅读单词列表中的单词来找到包含7个不同字母的单词,我为此编写了一个方法。 首先,我浏览单词并同步字符列表,然后通过导航字母txt文件在单词中相互检查,如果有,则增加计数器。通过这种方式,我试图了解单词中有多少不同的字母,最后,如果它提供了控制,我会将其添加到列表中。 读取txt文件并返回哈希集。 但它不是

  • 问题内容: 我需要在HTML源代码中找到一个单词。我还需要计算发生的次数。我正在尝试使用正则表达式。但它说找到0个匹配项。 我正在使用正则表达式,因为我认为这是最好的方法。如果有更好的方法,请告诉我。 我需要在HTML源代码中找到单词“ hsw.ads”的出现。 我已采取以下步骤。 但是计数是0; 请让我知道您的解决方案。 谢谢。帮助寻求者 问题答案: 您应该尝试一下。 在字符串中传递要搜索的单词

  • 本文向大家介绍程序查找可以由python中给定字母形成的最长单词的长度,包括了程序查找可以由python中给定字母形成的最长单词的长度的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个单词列表和一个称为字母的字符串,我们必须找到可以通过重新排列给定字母而得到的最长单词的大小。字母中可能有星号(*),它可以匹配任何字符。并且没有必要使用所有字母。 因此,如果输入像单词= [“ prince”,

  • 使用递归,编写一个给定整数列表和给定和的程序,将找到总数为给定和的所有数字子集。计算找到的子集数。如果不存在子集,则应指示未找到解决方案。例如,给定列表6、13、3、3,且总和为19,您的程序应找到两个解决方案: 将输入列表中的整数数限制为最多20个整数。仅接受正整数,并使用0标记列表的结尾。以下是运行示例: 这是我的代码,但它只找到一个子集,我想找到所有子集。有什么帮助吗?