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

HackerRank上的SherlockAndAnagrams算法解释错了吗?

公冶昆杰
2023-03-14

这是一个链接: https://www.hackerrank.com/challenges/sherlock-and-anagrams/problem?h_l=interview

这是我不同意的部分:

在位置[[[0],[1]],[[0],[2]],[[0],[3]],[[1],[2]],[[1],[3]]有6个形式[k, k]的字谜

和[[2],[3]]。

在位置[[0,1],[1,2]],[[0,1],[2,3]]和[[1,2],[2,3]]有3个形式为[kk,kk]的变位词。

在位置 [[0,1,2],[1,2,3]] 处有 1 个 [kkk,kkk] 形式的字谜。

我不认为解释是正确的原因是因为:

1-形式[kk,kk]我们有更多的变位字[[0,1],[0,2],[[0,1,[0,3],[[1,2]、[1,3]]

2-形式[kkk,kkk]我们有更多的字谜[[0,1,2],[0,2,3]],[[0,1,2],[0,1,3]]等等。

是我理解错了问题还是作者搞错了

请注意,在他上面的解释中,他没有按顺序使用字谜,所以我想知道为什么他没有使用我找到的字谜?

共有1个答案

翟元凯
2023-03-14

如果一个字符串的字母可以重新排列以形成另一个字符串,则两个字符串是彼此的字谜。给定一个字符串,找出该字符串中彼此是字谜的子字符串对的数量。

你应该仔细阅读链接中给出的字谜的定义。作者没有犯错误。

 类似资料:
  • 在每次移动中,Nick可以从堆栈A或B堆栈的顶部移除一个整数。 Nick保存从两个堆栈中移除的整数的运行和。 如果Nick在任何一点上的运行和大于游戏开始时给定的某个整数X,他将被取消比赛资格。 我不明白算法,它看起来像DP,对我来说,有人能帮助我的方法/算法吗? **

  • 我必须使用基于最小堆的优先级队列来实现Prim的算法。如果我的图包含顶点A、B、C和D以及下面的邻接列表...[它被排序为(顶点名称,相邻顶点的权重)] 粗图: 优先级队列是什么样子的?我不知道该往里面放什么。我应该把所有东西都放进去吗?我应该只写A、B、C和D。我不知道,我真的很想得到答案。

  • 我最近已经解决了名为“康威的人生游戏”的有趣的黑客问题问题陈述如下: 《生命的游戏》是一款由英国数学家约翰·霍顿·康威设计的细胞自动机游戏。最初的游戏是零人游戏。它的发展完全取决于它的投入。 生命游戏在2D网格上进行。网格中的每个单元格将处于两种可能状态之一, 活死人细胞的出生或死亡是基于以下规则。 如果一个细胞正好被3个活细胞包围,它就会从死细胞转换为活细胞。如果一个细胞被2或3个活细胞包围,它

  • 我对学习如何用foldLeft函数在scala中实现Kadane(最大子数组和)算法感兴趣。我在堆栈溢出中运行了这个示例,但我不确定我是否理解该算法的确切功能。这就是算法的样子: 中包含的内容是否是需要应用于每个元素的lambda函数?还有,这行到底做什么?为什么括号里的括号用空格隔开?我很感激任何帮助,如果我的问题让人觉得太无知,我很抱歉,但我对Scala是新手

  • 本文向大家介绍你了解vue的diff算法吗?相关面试题,主要包含被问及你了解vue的diff算法吗?时的应答技巧和注意事项,需要的朋友参考一下 说实话没有阅读过源码 大概说一下自己的猜测: 如一个list中某一个数据发生变更时, vue中会对整个list进行遍历, 判断使用到的某些属性是否发生变更, 从而更新发生变更的item 所以key属性才会显得很重要, 它会告诉你, 我那个item发生变更,

  • 问题内容: 我试图通过一些在线材料来学习Java中的注释。 在下面的代码,发生了什么事我亲爱的“Hello World”的字符串,我在这行通过:? 上面是定义的注释,下面是其用法 当我运行此代码时,它只是打印 请帮帮我,我完全不了解注释。 问题答案: 注释基本上是可以附加到字段,方法,类等的数据位。 在Java中声明注释的语法有点尴尬。它们看起来有点像接口(毕竟是用声明的),但它们并不是真正的接口