如何破译未知的替换密码

Ahm*_*leh 2 cryptography

您将获得一个包含字符串列表的文件(每行一个).对字符串进行排序,然后使用未知的替换密码(例如a < c, b < r, c < d)进行加密.如何确定替换密码的映射是什么?未加密的字符串可以使用任何语言.

我想知道这个问题是否很难,我正在申请一个新的毕业生职位,我无法解决这个问题,而且他在这个问题上和我待了大约45分钟.

eri*_*len 6

我猜关键的事实是字符串在加密之前已经排序,所以你根本不用担心语言.

我想到的第一个解决方案就是创建一个强力回溯算法,但这可能并不好.

我能想到的第二个解决方案是从文件中提取所有已知关系,例如.这个文件:

xtw
yaw
yay
Run Code Online (Sandbox Code Playgroud)

会告诉你x < y(因为xtw <yaw)和w < y(因为yaq <yay).在获得关系的有向图之后,您只需要在拓扑上对此图进行排序,您的解决方案就在那里.