用字典猜词

时间:2011-02-10 05:31:17

标签: java encryption

我猜测一个不那么简单的简单替换密文的关键。我评估密钥正确性的规则是假定解密中的英文单词数。

java中是否有任何可以检查字符串中英文单词数量的工具。例如, “thefoitedstateswasat” - > 4个字 “thefortedxyzstateswasathat” - > 5个单词。

我加载了单词列表并使用HashSet作为词典。由于我不知道文本中的词间空间,我无法使用简单的词典验证单词。

感谢。

3 个答案:

答案 0 :(得分:1)

我在这里给出了一个类似问题的答案:

If a word is made up of two valid words

它中有一些Java-esque伪代码,可以适应解决这个问题的东西。

答案 1 :(得分:1)

抱歉,我是新手,暂无评论。

但是,由于检查和排列的数量非常大,代码不会很慢吗?

我猜你只需要通过使用嵌套for循环的(n-1)个字来强制执行。然后在字典中搜索每个子字符串。

答案 2 :(得分:0)

当然有更好的方法来测试密钥的准确性吗?

但这不是重点,这就是我要做的事情:

使用“quackdogsomethinggodknowswhat”

我有一个递归方法,从字符串的开头开始,我会为主题字符串开始的所有单词调用递归方法,在本例中为“qua”,并且“quack”与字符串不包含单词(“dogsomethinggodknowswhat”表示嘎嘎)。返回更大的值:1 +从所有方法调用返回的最大值OR 0 +从索引1开始的字符串的方法调用(“uackdogsomethinggodknowswhat”)。

如果您将单词列表保存在某种树中,这可能会效果最佳。

如果你需要一些伪代码,请问!