看到一个练习,判断两个相同长度字符串其中一个是否是另外一个循环移位的结果,思路是把其中一个字符串连接自身,用KMP算法判断另外一个是否是这个字符串的字串。
示例:
a: “this testing”
b: ”ingthis test“
判断a 是否是“ingthis testing this test” 的子串即可。
由此反向想到另外一个需求,字符串循环移位。思路是把此字符串连接自身,然后从位置n 处取长度为自身的字串即可。
示例:
“this testing” 循环右移6位。
"this testingthis testing" 从位置6起取自身长度的子串。
=> "estingthis t"