给定两个整数 a 和 b,我们如何检查 b 是 a 的旋转版本?
例如,如果我有 a = 0x01020304
(二进制 0000 0001 0000 0010 0000 0011 0000 0100
),那么以下 b 值是正确的:
- ...
0x4080C1
(右旋2)0x810182
(右旋1)0x2040608
(左旋1)0x4080C10
(左旋2)- ...
最佳答案
对于 n 位数字,您可以使用 KMP algorithm在复杂度 O(n) 的 a 的两个拷贝中搜索 b。
关于java - 检查整数是另一个整数的位旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16979726/