当前位置: 首页 > 知识库问答 >
问题:

在字符串数组中查找特定字符/字母的算法?

齐英耀
2023-03-14

因此,我试图提出一种算法,在字符串数组中查找带有特定字符/字母的单词。

有没有一个聪明的方法,也许通过排序列表,然后以某种方式搜索?

另外,这个算法的运行时间是多少?它会被认为是O(n)还是O(n*m)?其中n是字典中的单词数,m是数组中每个单词的长度。

共有1个答案

狄誉
2023-03-14

为了找到带有特定字符的单词,您需要至少阅读该字符一次。因此,您必须访问每个单词中的每个字符一次,给出一个运行时O(n*m),其中n是单词数,m是平均单词长度。所以是的,您需要从每个单词中查找每个字符。

现在,如果你要对不同的字母进行大量的查询,你可以对所有单词进行一次遍历,然后将这些单词映射到它们所在的字符。即apple=>a,p,l,e集。然后您将有26个集合,其中包含所有带有该字符的单词('A':[apple]、'B':[bird]、'C':[]、...'L':[apple,hello]、...)。随着查询的数量相对于单词集的大小而增加,您最终将得到O(1)的摊销查找时间--尽管您仍然有O(N*M)的初始化复杂度。

 类似资料:
  • 考虑以下字符串: 和 我希望分离出一个特定的序列,该序列可以存在(第一个示例)也可以不存在(第二个示例) 特别是,我正在寻找一个数字序列,它可以是长1到4个数字,后面可以是一个字母,但在字符串中也不能有子字符串“km”。因此,在我前面的示例中,“278a”是有效的,但数字序列的其余部分不是。 到目前为止,我所做的是: 因为我知道任何包含“km”的字符串都是无效的,所以我应用了这段代码: 我知道这个

  • 问题是,我试图这么做,但我检查字符串长度的方法不起作用;我能做些什么来修复它?

  • 问题内容: 我有一个像这样的数组: 我要做的是删除“苹果”。 我的问题很基本,但是,我搜索了网站,发现java并不真正支持从数组中删除功能。我还听说过使用Java Utils,因为删除项目非常简单…。我试图在Google上找到Java Utils,但是几乎所有链接都消失了。 所以最后…有什么方法可以从字符串数组中删除字符串? 即使我使用ArrayList,也找不到在其中生成随机项的方法!例如:在普

  • 问题内容: 我正在寻找一种在字符串中查找JSON数据的方法。像wordpress简码一样思考它。我认为最好的方法是使用正则表达式。我不想解析JSON,只需查找所有出现的事件。 正则表达式中是否有办法使括号的数量匹配?目前,当我嵌套对象时遇到了这个问题。 演示的快速示例: 结果,我想要两个JSON字符串。谢谢! 问题答案: 从给定的文本中提取JSON字符串 由于您正在寻找一种简单的解决方案,因此可以

  • 我有一些字符串,比如,,,。 有没有一种方法可以生成一个数组,其中包含了中间的所有值(包括)。例如,字符串将返回一个数组['a'、'b'、'c'、'd'],而将返回[11,12,13,14,15,16]?

  • 问题内容: 我正在做一个作业,在该作业中,我必须编写程序以读取用户的字符串,并打印出字符串中出现次数的字母。 例如,“ Hello world”应该打印出“ h = 1 e = 1 l = 3 o = 2 …等”,但是我只写“ hello world”和字母总数。 我不能使用hashmap函数,只能使用数组。有人可以给我一两个提示,提示如何从下面的书面代码继续进行操作以获得我的首选功能?我不完全了