我想找到一个算法来计算数组的不同子数组的数量.
例如,在A = [1,2,1,2]的情况下,不同子阵列的数量为7:
{ [1] , [2] , [1,2] , [2,1] , [1,2,1] , [2,1,2], [1,2,1,2]}
Run Code Online (Sandbox Code Playgroud)
在B = [1,1,1]的情况下,不同子阵列的数量为3:
{ [1] , [1,1] , [1,1,1] }
Run Code Online (Sandbox Code Playgroud)
甲子阵列是一个连续子序列,或切片,阵列.区别意味着不同的内容; 例如:
来自A [0:1]的[1]和来自A [2:3]的[1]并不明显.
同样地:
B [0:1],B [1:2],B [2:3]不明显.
我们有一个字符串S,我们想要计算通过旋转字符串可以形成的不同字符串的数量.
例如 :-
S ="aaaa",这里是1字符串{ "aaaa" }
S ="abab",这里将是2个字符串{ "abab","baba" }
那么,有没有一种算法可以在O(| S |)复杂度中解决这个问题,其中| S | 是字符串的长度.