假设我有一个char {A,B,C,D,E,F}数组,订单号为3
然后,扰乱的词语如下:
第一个第3个(订单号)字符C被删除并保存。
{A,B,D,E,F},{C}
从下面的字符D开始,第一个第三个字符是F.因此,F被删除并保存。
{A,B,D,E},{C,F}
从以下字符开始(因为它到达数组索引的末尾,我们回到开头)。所以从字符A开始,第一个第三个字符是D.
{A,B,E},{C,F,D}
等等。
结果将是一个空的原始char数组和加扰数组
{},{C,F,D,B,E,A}
上述算法可以轻松实现。我没有问题。我所遇到的问题是解读它。我给了一些解密的char数组,它的排序,我必须找到它的原始char数组。
我现在已经尝试了好几个小时,而且我似乎无法找到一个"公式"为了它。我猜测我错过了至关重要的事情。谁能给我一些关于如何处理这个问题的线索或提示?
答案 0 :(得分:0)
制作"地图字符串"与原作相同的长度,但所有字母按顺序排列,如" ABCDEFGH .."
根据给定的顺序加扰
现在,同时遍历问题字符串和地图字符串。对于问题字符串中的每个字符,地图字符串字符将说明放置它的位置。如果你有map =" SQEG ......"和问题=" DSEG ...",然后' D'进入' S'位置,' S'进入Q' Q'职位等
那就是它。如果您愿意,或者问题字符串太长,请使用整数数组而不是地图字符串。