给定一个字符串数组,返回所有属于字谜词组的字符串

2024-04-16

给定一个字符串数组,返回所有属于字谜词的字符串组。

我的解决方案:

对于数组中的每个字符串单词,对其进行排序 O(m lg m),m 是单词的平均长度。

建立一个哈希表。

将排序后的单词作为键放入哈希表中,并生成该单词的所有排列(O(m!)),如果字典中存在每个排列,则使用 O(m) 在字典(前缀树映射)中搜索每个排列,将 (O(1)) 它放入哈希表中,以便所有排列后的单词都放入具有相同键的列表中。

总共,时间为 O(n * m * lg m * m!) ,空间为 O(n* m!) ,n 是给定数组的大小。

如果m很大的话,效率不高,m! 。

还有更好的解决方案吗?

thanks


我们定义一个字母表,其中包含单词列表中可能存在的每个字母。接下来,我们需要为字母表中的每个字母使用不同的素数,我建议使用您能找到的最小素数。

这将为我们提供以下映射: { a => 2、b => 3、c => 5、d => 7 等 }

现在计算要表示为整数的单词中的字母,并按如下方式构建结果整数:

伪代码:

result = 1
for each letter:
....result *= power(prime[letter], count(letter,word)

一些例子:

啊啊=> 2^4

aabb => 2^2 * 3^2 = bbaa = 巴巴 = ...

等等。

因此,您将有一个代表字典中每个单词的整数,并且您要检查的单词将能够转换为整数。因此,如果 n 是单词列表的大小,k 是最长单词的大小,则构建新字典需要 O(nk) 时间,检查新单词需要 O(k) 时间。

Hackthissite.com 面临的编程挑战是:给定一个乱序的单词,在字典中查找它,看看字典中是否有它的字谜词。有一个好文章 http://www.hackthissite.org/articles/read/1081关于我借用答案的问题的有效解决方案,它还详细介绍了进一步的优化。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

给定一个字符串数组,返回所有属于字谜词组的字符串 的相关文章

随机推荐

  • Oracle SQL 案例中的数字无效

    您好 我在处理 SQL 案例时遇到了麻烦 问题是我尝试运行具有 7 个不同列的案例 这些列可以具有不同类型的数据 字符串 日期 数字 具体取决于 id 这意味着在某些 id 下 列中的行将是字符串 而在其他 id 下 列中的行将是数字 我意
  • 纯ASP上传带图片检测

    如何将文件从浏览器上传到运行经典 ASP 的服务器并检测服务器端文件是否是有效图片 对于有效的图片 如何获取其尺寸 通常经典ASP中的文件上传是由第三方组件完成的 这些组件带有DLL文件 需要在服务器上注册 有时还需要花钱 不用说 出于安全
  • Spring Boot加载图片后上传

    我能够将图像上传到服务器 并且可以在路径中找到我的图像 static images gallery 现在 当我尝试加载上传的图像时 应用程序不显示主题 仅在应用程序重新启动后 我遇到了同样的问题 因为启动时加载了静态目录 上传路径一定要放在
  • 当mysql WHERE子句为空时,返回所有行

    randomvariable GET randomvariable search SELECT from objects WHERE transactiontype randomvariable order by id DESC Now i
  • 在asp.net mvc中动态添加文本框并将值保存到数据库

    我想通过单击添加按钮动态添加文本框 可以删除文本框 最后可以保存文本框中的列表值 我的模特班 public class CustModel public List
  • 使用 ASP.New MVC 4 Web Api 进行授权过滤器依赖注入

    我正在尝试在 MVC 4 Web Api 授权过滤器上实现依赖项注入 我创建了一个继承自 ActionDescriptorFilterProvider 的 FilterProvider public class UnityWebApiFil
  • jQuery validate:如何添加正则表达式验证规则?

    我正在使用jQuery http en wikipedia org wiki JQuery验证插件 好东西 我想迁移现有的 ASP NET 解决方案以使用 jQuery 而不是 ASP NET 验证器 我缺少替代品正则表达式验证器 我希望能
  • Unity3d NavMeshAgent.isOnNavMesh 在特定功能中变为 false

    我更改了标题以反映添加的澄清信息 我正在遵循 Unity 教程 1 当需要测试播放器单击控件时 Unity 给出了一个错误 SetDestination 只能在已放置在导航网格上的活动代理上调用 据我所知 我的代理处于活动状态并且位于 na
  • Android IPC远程服务调用显示错误

    我想做一个关于IPC通信 服务之间的通信 的演示应用程序 我在用AIDL为了那个原因 我发现大部分教程RemoteService和客户端在同一个包中 我实际上是分开做的 同时传递我正在使用的对象Parcelable方法和面临的错误 它说就像
  • C++ 中函数原型和函数实现有什么区别?

    我应该将我的实现放在一个文件中 将原型放在头文件中 但按照我的理解 充满原型的头文件不会很有用 这些是什么东西 其中之一与定义或声明相同吗 函数原型是声明其参数类型的函数声明 这种区别是历史性的 在 C 中 可以声明没有原型的函数 但在 C
  • 如何获取 Kubernetes POD 的活动连接数

    我是 Kubernetes 新手 对于我们的应用程序 我需要找到 pod 的活动连接数 我分析了一下 发现我们可以使用 Istio 等 Kubernetes 插件来获取此类数据 但我了解到 使用此类插件可能会导致内存命中 因为插件为每个 P
  • Python Flask Cors 问题

    我对 Python 有点陌生 但在使用 Node 应用程序时遇到了同样的问题 我正在向本地 Python 服务器发出一个非常标准的 jQuery AJAX 请求 init function callback var token config
  • 非交互式“git flow release finish”

    我如何使用git flow release finish以不要求合并提交消息的方式 这 m正如我所料 flag 没有提供此功能 当然 目标是能够以不需要交互的方式编写脚本 可以设置环境变量 export GIT MERGE AUTOEDIT
  • Maven-resources-plugin不会复制.metadata文件夹

    我正在尝试使用 maven resources plugin 复制文件夹或以下结构 root metadata Project gitignore 项目目录和 gitignore 文件被复制 但 metadata 目录由于某种原因被遗漏 如
  • Go:使用 gdb 打印变量

    在此程序中 如何使用调试器中断执行并打印 i 的值 package main import fmt func main x abc i 3 fmt Println i fmt Println x 我无法打印我 不过我可以打印 x go bu
  • 将工具栏设置为片段中的操作栏

    我想将我的工具栏设置为操作栏 但由于您的工具栏是布局元素 因此它必须位于您的布局中 现在我的布局在我的片段中 我在布局中添加了工具栏 并在片段中调用它 Toolbar Toolbar toolbar Toolbar getActivity
  • 如何有条件地要求 Angular 4 中的表单输入?

    我正在使用模板驱动的表单来添加任务 并且有 2 个数字类型的输入字段用于估计完成任务的分钟数 一个字段用于估计小时数和 另一个是完成任务的估计分钟数 因为任务估计可以在几小时内完成 例如1hrs 或者像这样的小时和分钟1小时30分钟 所以我
  • PHP7 - nusoap - nusoap_client 有一个已弃用的构造函数

    我想用nusoap on Laravel 5 3 with PHP7 但是当我生病时尝试安装它composer从该包中 https github com codecasts nusoap php7 https github com code
  • unique_together 中的多个元组

    当我定义模型并在元中使用 unique together 时 我可以定义多个元组 这些是进行 OR 运算还是 AND 运算 可以说我有一个模型 class MyModel models Model druggie ForeignKey dr
  • 给定一个字符串数组,返回所有属于字谜词组的字符串

    给定一个字符串数组 返回所有属于字谜词的字符串组 我的解决方案 对于数组中的每个字符串单词 对其进行排序 O m lg m m 是单词的平均长度 建立一个哈希表 将排序后的单词作为键放入哈希表中 并生成该单词的所有排列 O m 如果字典中存