【发布时间】:2017-07-18 00:25:25
【问题描述】:
假设我有一个 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}
等等。
结果将是一个空的原始字符数组,以及加扰的数组
{ } , {C,F,D,B,E,A}
上述算法很容易实现。我对此没有任何问题。我确实有问题是解读它。我得到了一些未加扰的 char 数组及其排序,我必须找到它的原始 char 数组。
我已经尝试了几个小时,但我似乎无法找到它的“公式”。我猜我错过了一些关键的东西。谁能给我一个关于如何解决这个问题的线索或提示?
【问题讨论】:
-
你知道大小,所以
......然后把C放在第三个位置,所以..C...然后你知道F是右边3 个C所以..C..F然后D是3右边的F所以你最终在C(使用你有的数组结束规则)并且因为该点被占用,所以使用下一个点等等 -
(去掉java标签,本题没有java)
-
这是一个例子.. 以你自己的例子为基础,如果这让事情变得清楚:“然后把 C 放在第三个位置”应该是“然后把加扰数组的第一个字符放在 @987654331 @-th 位置"
-
知道了。不小心删除而不是编辑我的评论。现在有道理了!非常感谢