假设我们有以下两个列表:
L1 = [1, 2, 3, 4, 5] and L2 = [4, 5, 1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
这些可以被认为是相同的,因为L1两个索引向右的旋转将在L2中产生.
这个解决方案很简单,只需每次将列表旋转1,直到它与L2匹配,我想弄清楚的是,如果可以通过找到某种模式或方程来确定这两个列表是否相同当两个列表插入输出时是相同的数字,因此表明列表实际上是相同的(就圆形而言).
这可能吗?或者这是否涉及高级数学?
编辑:不试图找到确定圆度或最少计算量的最快方法.我试图找出列表是否可以量化为具有相同圆度的不同列表具有相同的签名,因此列表被认为是相同的.有没有可以解决这个问题的函数或方程?即
f(L1) = X and f(L2) = X
Run Code Online (Sandbox Code Playgroud)
由于X = X,这两个列表是圆形相同的.