算法问题:重建密码

时间:2019-05-07 22:53:13

标签: java algorithm graph-theory

我是一年级CS学生,并且正在参加算法课程,几天来我一直在解决家庭作业问题。 你能给我个主意吗? 当我们学习欧拉循环/路径,汉密尔顿循环时,就会发布此问题。

详细信息: 我们都知道记住密码并不容易,但是在一张纸上写下密码并不足够安全。这就是为什么您决定以复杂的方式写下密码的原因。密码是n + 2个字符串a1,a2 ...,an + 2,并且在n张单独的纸上写下了所有可能的三个字母连续子字符串: a1a2a3,a2a3a4,... 。 。 ,anan + 1an + 2。但是,随着时间的流逝,您忘记了原始密码以及包含三个字母子字符串的论文顺序。更糟糕的是,您甚至不确定自己是否丢了一些论文。尽管这不是一个完美的检查,但您还是想检查一下是否可以从已有的文件中构造出至少一个字符串。

输入: 输入的第一行包含测试用例的数量t≤50。 t个测试案例的每个描述如下。 •它从包含整数n的行开始,表示找到的纸张数量(1≤n≤5·103)。 •接下来的n行包含三个字母字符串,表示写在纸上的子字符串。

输出: 对于每个测试用例,在单独的行“ yes”上输出,如果存在长度为n + 2的字符串,则在应用上述步骤之后,您会从输入中准确获得n个不同的子字符串。否则,您应该输出“否”。

我只能将这个问题与汉密尔顿循环联系起来,例如可能存在边(abc,bcf)等。 但这似乎不是解决此问题的正确方法。

0 个答案:

没有答案